The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
.gitignore 01
BUGS 70
CHANGES 015
Cover.xs 146156
MANIFEST 47
MANIFEST.SKIP 02
META.yml 22
Makefile.PL 810
all_versions 22
buildperl 5070
cover 66
cpancover 88
create_gold 33
gcov2perl 55
lib/Devel/Cover/Annotation/Random.pm 44
lib/Devel/Cover/Annotation/Svk.pm 44
lib/Devel/Cover/Branch.pm 44
lib/Devel/Cover/Condition.pm 44
lib/Devel/Cover/Condition_and_2.pm 44
lib/Devel/Cover/Condition_and_3.pm 44
lib/Devel/Cover/Condition_or_2.pm 44
lib/Devel/Cover/Condition_or_3.pm 44
lib/Devel/Cover/Condition_xor_4.pm 44
lib/Devel/Cover/Criterion.pm 1515
lib/Devel/Cover/DB/File.pm 55
lib/Devel/Cover/DB/Structure.pm 44
lib/Devel/Cover/DB.pm 819
lib/Devel/Cover/Op.pm 44
lib/Devel/Cover/Pod.pm 44
lib/Devel/Cover/Report/Compilation.pm 55
lib/Devel/Cover/Report/Html.pm 44
lib/Devel/Cover/Report/Html_basic.pm 99
lib/Devel/Cover/Report/Html_minimal.pm 77
lib/Devel/Cover/Report/Html_subtle.pm 88
lib/Devel/Cover/Report/Sort.pm 55
lib/Devel/Cover/Report/Text.pm 55
lib/Devel/Cover/Report/Text2.pm 44
lib/Devel/Cover/Statement.pm 44
lib/Devel/Cover/Subroutine.pm 44
lib/Devel/Cover/Test.pm 49
lib/Devel/Cover/Time.pm 44
lib/Devel/Cover/Truth_Table.pm 22
lib/Devel/Cover/Tutorial.pod 22
lib/Devel/Cover/Web.pm 44
lib/Devel/Cover.pm 2527
makeh 037
test_output/cover/alias.5.006001 22
test_output/cover/alias1.5.006001 33
test_output/cover/alias1.5.008 33
test_output/cover/branch_return_sub.5.006001 22
test_output/cover/branch_return_sub.5.008 22
test_output/cover/change.5.006001 22
test_output/cover/cond_and.5.006001 22
test_output/cover/cond_and.5.008 22
test_output/cover/cond_and.5.008001 22
test_output/cover/cond_branch.5.006001 22
test_output/cover/cond_branch.5.008 22
test_output/cover/cond_branch.5.008001 22
test_output/cover/cond_branch.5.012000 0489
test_output/cover/cond_or.5.006001 111114
test_output/cover/cond_or.5.006002 111114
test_output/cover/cond_or.5.008 115118
test_output/cover/cond_or.5.008001 115118
test_output/cover/cond_or.5.009005 1700
test_output/cover/cond_or.5.010000 116119
test_output/cover/cond_xor.5.006001 22
test_output/cover/cond_xor.5.008 22
test_output/cover/cond_xor.5.008001 22
test_output/cover/default_param.5.006001 22
test_output/cover/default_param.5.008 22
test_output/cover/default_param.5.008001 22
test_output/cover/deparse.5.006001 22
test_output/cover/deparse.5.008 22
test_output/cover/destroy.5.006001 22
test_output/cover/dynamic_subs.5.006001 22
test_output/cover/dynamic_subs.5.008 22
test_output/cover/dynamic_subs.5.008001 22
test_output/cover/dynamic_subs.5.008002 22
test_output/cover/eval1.5.006001 4649
test_output/cover/eval1.5.008 5053
test_output/cover/eval2.5.006001 22
test_output/cover/eval2.5.008 22
test_output/cover/eval3.5.006001 22
test_output/cover/eval3.5.008 22
test_output/cover/eval_sub.t.5.006001 22
test_output/cover/eval_sub.t.5.008 22
test_output/cover/eval_use.t.5.006001 22
test_output/cover/eval_use.t.5.008 22
test_output/cover/exec.5.006001 22
test_output/cover/fork.5.006001 22
test_output/cover/if.5.006001 22
test_output/cover/if.5.008 22
test_output/cover/inc_sub.5.006001 11
test_output/cover/inc_sub.5.008 11
test_output/cover/inc_sub.5.009005 660
test_output/cover/inc_sub.5.010000 066
test_output/cover/md5.5.006001 22
test_output/cover/module1.5.006001 33
test_output/cover/module1.5.008 33
test_output/cover/module1.5.008001 33
test_output/cover/module2.5.006001 33
test_output/cover/module2.5.008 33
test_output/cover/module2.5.008001 33
test_output/cover/module_ignore.5.006001 22
test_output/cover/module_ignore.5.008 22
test_output/cover/module_ignore.5.008001 22
test_output/cover/module_import.5.006001 22
test_output/cover/module_import.5.008 33
test_output/cover/module_import.5.008001 33
test_output/cover/module_relative.5.006001 12
test_output/cover/module_relative.5.008 33
test_output/cover/module_relative.5.008001 33
test_output/cover/overload_bool.5.006001 22
test_output/cover/overload_bool.5.008 22
test_output/cover/overloaded.5.006001 22
test_output/cover/overloaded.5.008 22
test_output/cover/pod.5.006001 11
test_output/cover/pod.5.008 11
test_output/cover/pod_nocp.5.006001 11
test_output/cover/pod_nocp.5.008 11
test_output/cover/require.5.006001 22
test_output/cover/require.5.008 22
test_output/cover/skip.5.006001 22
test_output/cover/sort.5.006001 11
test_output/cover/sort.5.008 11
test_output/cover/special_blocks.5.006001 22
test_output/cover/special_blocks.5.008 22
test_output/cover/special_blocks.5.008001 22
test_output/cover/special_blocks.5.009005 740
test_output/cover/special_blocks.5.010000 074
test_output/cover/statement.5.006001 22
test_output/cover/subs_only.5.006001 22
test_output/cover/t0.5.006001 22
test_output/cover/t0.5.008 22
test_output/cover/t0.5.008001 22
test_output/cover/t1.5.006001 22
test_output/cover/t1.5.008 22
test_output/cover/t2.5.006001 22
test_output/cover/t2.5.008 22
test_output/cover/t2.5.008001 22
test_output/cover/trivial.5.006001 22
test_output/cover/uncoverable.5.006001 22
test_output/cover/uncoverable.5.012000 094
tests/Alias1.pm 11
tests/E2.pm 11
tests/E3.pm 11
tests/E4.pm 11
tests/Module1.pm 11
tests/Module2.pm 11
tests/Module_import.pm 11
tests/PodMod.pm 11
tests/alias 11
tests/alias1 11
tests/branch_return_sub 11
tests/change.t 33
tests/cond_and 11
tests/cond_branch 11
tests/cond_or 14
tests/cond_or.pl 11
tests/cond_xor 11
tests/default_param 11
tests/deparse 11
tests/destroy 11
tests/dynamic_subs 11
tests/eval1 14
tests/eval2 11
tests/eval3 11
tests/eval_sub.t 22
tests/eval_use.t 22
tests/exec 11
tests/fork 11
tests/if 11
tests/md5.t 33
tests/module1 11
tests/module2 11
tests/module_ignore 11
tests/module_import 11
tests/module_relative 11
tests/overload_bool 11
tests/overloaded 11
tests/pod 11
tests/pod_nocp 11
tests/require 11
tests/skip 11
tests/special_blocks 11
tests/statement 11
tests/subs_only 11
tests/t0 11
tests/t1 11
tests/t2 11
tests/trivial 11
tests/uncoverable 11
utils/install/System.pm 0102
utils/install/buildperl 01074
194 files changed (This is a version diff) 20683259
@@ -12,3 +12,4 @@ t/
 lib/Devel/Cover/Inc.pm
 pm_to_blib
 *.out
+*.tar.bz2
@@ -21,10 +21,3 @@
   generally, any code run after Devel::Cover's END block won't be covered.
 
 - Empty subs will be ignored in Perl 5.8.1.
-
-- inc_sub test fails under bleadperl:
-
-  panic: Can't use %- because Tie::Hash::NamedCapture is not available at /usr/local/pkg/bleadperl/lib/5.9.5/i686-linux/B.pm line 244.
-  CHECK failed--call queue aborted.
-  panic: Can't use %! because Errno is not available at /usr/local/pkg/bleadperl/lib/5.9.5/i686-linux/B.pm line 244.
-  END failed--call queue aborted.
@@ -1,5 +1,20 @@
 Devel::Cover.pm history
 
+Release 0.66 - 12th April 2010
+ - Move to faster method of collecting data.  Could be up to twice as fast now.
+ - Add -replace_ops options to be able to revert to previous collection method.
+ - Test against 5.12.0 and update tests as necessry.
+ - Work better with non-existent databases.
+ - XS fixes related to overriding ops rather than replacing runops
+   (Florian Ragwitz).
+ - Don't chmod created directories (mkdir should suffice).
+
+Release 0.65 - 8th August 2009
+ - Fix uninitialised value warning (reported by Andrew Billeb).
+ - Test against 5.8.9 and 5.10.1 (RC1).
+ - Correct deparsed conditional output in elsif conditions.
+ - Unset PERL5OPT when running tests.
+
 Release 0.64 - 10th April 2008
  - Build on Windows.
  - Make "cover -test" work for Module::Build (Michael G Schwern) (rt 34263).
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+ * Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
  *
  * This software is free.  It is licensed under the same terms as Perl itself.
  *
@@ -51,10 +51,6 @@ extern "C" {
 #define L Perl_debug_log
 #define svdump(sv) do_sv_dump(0, L, (SV *)sv, 0, 10, 1, 0);
 
-/* TODO - make this dynamic */
-     /* - fix up whatever is broken with module_relative on Windows here */
-#define REPLACE_OPS 0
-
 #define None       0x00000000
 #define Statement  0x00000001
 #define Branch     0x00000002
@@ -94,6 +90,9 @@ typedef struct
     SV           *module,
                  *lastfile;
     int           tid;
+    int           replace_ops;
+    /* - fix up whatever is broken with module_relative on Windows here */
+
 #if PERL_VERSION > 8
     Perl_ppaddr_t ppaddr[MAXO];
 #else
@@ -155,9 +154,7 @@ static double elapsed()
     return e;
 }
 
-#endif /* HAS_GETTIMEOFDAY */
-
-#ifdef HAS_TIMES
+#elif defined HAS_TIMES
 
 #ifndef HZ
 #  ifdef CLK_TCK
@@ -190,7 +187,7 @@ static int cpu()
     return e / HZ;
 }
 
-#endif /* HAS_TIMES */
+#endif /* HAS_GETTIMEOFDAY */
 
 static char *get_key(OP *o)
 {
@@ -207,7 +204,7 @@ static char *get_key(OP *o)
 static char *hex_key(char *key)
 {
     static char hk[KEY_SZ * 2 + 1];
-    int c;
+    unsigned int c;
     for (c = 0; c < KEY_SZ; c++)
     {
         NDEB(D(L, "%d of %d, <%02X> at %p\n",
@@ -243,82 +240,6 @@ static void set_firsts_if_needed(pTHX)
     }
 }
 
-static void initialise(pTHX)
-{
-    dMY_CXT;
-
-    MUTEX_LOCK(&DC_mutex);
-    if (!Pending_conditionals)
-    {
-        Pending_conditionals = newHV();
-#ifdef USE_ITHREADS
-        HvSHAREKEYS_off(Pending_conditionals);
-#endif
-    }
-    if (!Return_ops)
-    {
-        Return_ops = newHV();
-#ifdef USE_ITHREADS
-        HvSHAREKEYS_off(Return_ops);
-#endif
-    }
-    MUTEX_UNLOCK(&DC_mutex);
-
-    MY_CXT.collecting_here = 1;
-
-    if (!MY_CXT.covering)
-    {
-        /* TODO - this probably leaks all over the place */
-
-        SV **tmp;
-
-        MY_CXT.cover      = newHV();
-#ifdef USE_ITHREADS
-        HvSHAREKEYS_off(MY_CXT.cover);
-#endif
-
-        tmp               = hv_fetch(MY_CXT.cover, "statement", 9, 1);
-        MY_CXT.statements = newHV();
-        *tmp              = newRV_inc((SV*) MY_CXT.statements);
-
-        tmp               = hv_fetch(MY_CXT.cover, "branch",    6, 1);
-        MY_CXT.branches   = newHV();
-        *tmp              = newRV_inc((SV*) MY_CXT.branches);
-
-        tmp               = hv_fetch(MY_CXT.cover, "condition", 9, 1);
-        MY_CXT.conditions = newHV();
-        *tmp              = newRV_inc((SV*) MY_CXT.conditions);
-
-#if CAN_PROFILE
-        tmp               = hv_fetch(MY_CXT.cover, "time",      4, 1);
-        MY_CXT.times      = newHV();
-        *tmp              = newRV_inc((SV*) MY_CXT.times);
-#endif
-
-        tmp               = hv_fetch(MY_CXT.cover, "module",    6, 1);
-        MY_CXT.modules    = newHV();
-        *tmp              = newRV_inc((SV*) MY_CXT.modules);
-
-        MY_CXT.files      = get_hv("Devel::Cover::Files", FALSE);
-
-#ifdef USE_ITHREADS
-        HvSHAREKEYS_off(MY_CXT.statements);
-        HvSHAREKEYS_off(MY_CXT.branches);
-        HvSHAREKEYS_off(MY_CXT.conditions);
-#if CAN_PROFILE
-        HvSHAREKEYS_off(MY_CXT.times);
-#endif
-        HvSHAREKEYS_off(MY_CXT.modules);
-#endif
-
-        MY_CXT.profiling_key_valid = 0;
-        MY_CXT.module              = newSVpv("", 0);
-        MY_CXT.lastfile            = newSVpvn("", 1);
-        MY_CXT.covering            = All;
-        MY_CXT.tid                 = tid++;
-    }
-}
-
 static int check_if_collecting(pTHX)
 {
     dMY_CXT;
@@ -327,7 +248,7 @@ static int check_if_collecting(pTHX)
     NDEB(D(L, "check_if_collecting at: %s:%ld\n", file, CopLINE(cCOP)));
     if (file && strNE(SvPV_nolen(MY_CXT.lastfile), file))
     {
-        if (REPLACE_OPS)
+        if (MY_CXT.replace_ops)
         {
             dSP;
             int count;
@@ -472,7 +393,7 @@ static void store_return(pTHX)
 
     if (MY_CXT.collecting_here && PL_op->op_next)
     {
-        hv_fetch(Return_ops, get_key(PL_op->op_next), KEY_SZ, 1);
+        (void)hv_fetch(Return_ops, get_key(PL_op->op_next), KEY_SZ, 1);
         NDEB(D(L, "adding return op %p\n", PL_op->op_next));
     }
 }
@@ -589,6 +510,7 @@ static void add_conditional(pTHX_ OP *op, int cond)
     NDEB(D(L, "Adding %d conditional making %d at %p\n", cond, c, op));
 }
 
+#ifdef USE_ITHREADS
 static AV *get_conds(pTHX_ AV *conds)
 {
     dMY_CXT;
@@ -623,6 +545,7 @@ static AV *get_conds(pTHX_ AV *conds)
 
     return thrconds;
 }
+#endif
 
 static void add_condition(pTHX_ SV *cond_ref, int value)
 {
@@ -680,7 +603,7 @@ static void dump_conditions(pTHX)
     hv_iterinit(Pending_conditionals);
     PDEB(D(L, "Pending_conditionals:\n"));
 
-    while (e = hv_iternext(Pending_conditionals))
+    while ((e = hv_iternext(Pending_conditionals)))
     {
         I32   len;
         char *key         = hv_iterkey(e, &len);
@@ -729,7 +652,7 @@ static OP *get_condition(pTHX)
     else
     {
         PDEB(D(L, "All is lost, I know not where to go from %p, %p: %p (%s)\n",
-                  PL_op, PL_op->op_targ, pc, hex_key(get_key(PL_op))));
+                  PL_op, (void *)PL_op->op_targ, pc, hex_key(get_key(PL_op))));
         dump_conditions(aTHX);
         NDEB(svdump(Pending_conditionals));
         /* croak("urgh"); */
@@ -757,7 +680,7 @@ static void finalise_conditions(pTHX)
     MUTEX_LOCK(&DC_mutex);
     hv_iterinit(Pending_conditionals);
 
-    while (e = hv_iternext(Pending_conditionals))
+    while ((e = hv_iternext(Pending_conditionals)))
     {
         NDEB(D(L, "finalise_conditions\n"));
         add_condition(aTHX_ hv_iterval(Pending_conditionals, e), 0);
@@ -829,15 +752,15 @@ static void cover_logop(pTHX)
 
         set_conditional(aTHX_ PL_op, 5, void_context);
 
-        if (PL_op->op_type == OP_AND       &&  left_val     ||
-            PL_op->op_type == OP_ANDASSIGN &&  left_val     ||
-            PL_op->op_type == OP_OR        && !left_val     ||
-            PL_op->op_type == OP_ORASSIGN  && !left_val     ||
+        if ((PL_op->op_type == OP_AND       &&  left_val)     ||
+            (PL_op->op_type == OP_ANDASSIGN &&  left_val)     ||
+            (PL_op->op_type == OP_OR        && !left_val)     ||
+            (PL_op->op_type == OP_ORASSIGN  && !left_val)     ||
 #if PERL_VERSION > 8
-            PL_op->op_type == OP_DOR       && !left_val_def ||
-            PL_op->op_type == OP_DORASSIGN && !left_val_def ||
+            (PL_op->op_type == OP_DOR       && !left_val_def) ||
+            (PL_op->op_type == OP_DORASSIGN && !left_val_def) ||
 #endif
-            PL_op->op_type == OP_XOR)
+            (PL_op->op_type == OP_XOR))
         {
             /* no short circuit */
 
@@ -932,12 +855,6 @@ static void cover_logop(pTHX)
     }
 }
 
-static OP *runop(pTHX_ int op)
-{
-    dMY_CXT;
-    return CALL_FPTR(MY_CXT.ppaddr[op])(aTHX);
-}
-
 static OP *dc_nextstate(pTHX)
 {
     dMY_CXT;
@@ -1043,28 +960,127 @@ static OP *dc_exec(pTHX)
     return CALL_FPTR(MY_CXT.ppaddr[OP_EXEC])(aTHX);
 }
 
+static void replace_ops (pTHX) {
+    dMY_CXT;
+    int i;
+    NDEB(D(L, "initialising replace_ops\n"));
+    for (i = 0; i < MAXO; i++)
+        MY_CXT.ppaddr[i] = PL_ppaddr[i];
+
+    PL_ppaddr[OP_NEXTSTATE] = MEMBER_TO_FPTR(dc_nextstate);
+#if PERL_VERSION <= 10
+    PL_ppaddr[OP_SETSTATE]  = MEMBER_TO_FPTR(dc_setstate);
+#endif
+    PL_ppaddr[OP_DBSTATE]   = MEMBER_TO_FPTR(dc_dbstate);
+    PL_ppaddr[OP_ENTERSUB]  = MEMBER_TO_FPTR(dc_entersub);
+    PL_ppaddr[OP_COND_EXPR] = MEMBER_TO_FPTR(dc_cond_expr);
+    PL_ppaddr[OP_AND]       = MEMBER_TO_FPTR(dc_and);
+    PL_ppaddr[OP_ANDASSIGN] = MEMBER_TO_FPTR(dc_andassign);
+    PL_ppaddr[OP_OR]        = MEMBER_TO_FPTR(dc_or);
+    PL_ppaddr[OP_ORASSIGN]  = MEMBER_TO_FPTR(dc_orassign);
+#if PERL_VERSION > 8
+    PL_ppaddr[OP_DOR]       = MEMBER_TO_FPTR(dc_dor);
+    PL_ppaddr[OP_DORASSIGN] = MEMBER_TO_FPTR(dc_dorassign);
+#endif
+    PL_ppaddr[OP_XOR]       = MEMBER_TO_FPTR(dc_xor);
+    PL_ppaddr[OP_REQUIRE]   = MEMBER_TO_FPTR(dc_require);
+    PL_ppaddr[OP_EXEC]      = MEMBER_TO_FPTR(dc_exec);
+}
+
+static void initialise(pTHX)
+{
+    dMY_CXT;
+
+    NDEB(D(L, "initialising\n"));
+
+    MUTEX_LOCK(&DC_mutex);
+    if (!Pending_conditionals)
+    {
+        Pending_conditionals = newHV();
+#ifdef USE_ITHREADS
+        HvSHAREKEYS_off(Pending_conditionals);
+#endif
+    }
+    if (!Return_ops)
+    {
+        Return_ops = newHV();
+#ifdef USE_ITHREADS
+        HvSHAREKEYS_off(Return_ops);
+#endif
+    }
+    MUTEX_UNLOCK(&DC_mutex);
+
+    MY_CXT.collecting_here = 1;
+
+    if (!MY_CXT.covering)
+    {
+        /* TODO - this probably leaks all over the place */
+
+        SV **tmp;
+
+        MY_CXT.cover      = newHV();
+#ifdef USE_ITHREADS
+        HvSHAREKEYS_off(MY_CXT.cover);
+#endif
+
+        tmp               = hv_fetch(MY_CXT.cover, "statement", 9, 1);
+        MY_CXT.statements = newHV();
+        *tmp              = newRV_inc((SV*) MY_CXT.statements);
+
+        tmp               = hv_fetch(MY_CXT.cover, "branch",    6, 1);
+        MY_CXT.branches   = newHV();
+        *tmp              = newRV_inc((SV*) MY_CXT.branches);
+
+        tmp               = hv_fetch(MY_CXT.cover, "condition", 9, 1);
+        MY_CXT.conditions = newHV();
+        *tmp              = newRV_inc((SV*) MY_CXT.conditions);
+
+#if CAN_PROFILE
+        tmp               = hv_fetch(MY_CXT.cover, "time",      4, 1);
+        MY_CXT.times      = newHV();
+        *tmp              = newRV_inc((SV*) MY_CXT.times);
+#endif
+
+        tmp               = hv_fetch(MY_CXT.cover, "module",    6, 1);
+        MY_CXT.modules    = newHV();
+        *tmp              = newRV_inc((SV*) MY_CXT.modules);
+
+        MY_CXT.files      = get_hv("Devel::Cover::Files", FALSE);
+
+#ifdef USE_ITHREADS
+        HvSHAREKEYS_off(MY_CXT.statements);
+        HvSHAREKEYS_off(MY_CXT.branches);
+        HvSHAREKEYS_off(MY_CXT.conditions);
+#if CAN_PROFILE
+        HvSHAREKEYS_off(MY_CXT.times);
+#endif
+        HvSHAREKEYS_off(MY_CXT.modules);
+#endif
+
+        MY_CXT.profiling_key_valid = 0;
+        MY_CXT.module              = newSVpv("", 0);
+        MY_CXT.lastfile            = newSVpvn("", 1);
+        MY_CXT.covering            = All;
+        MY_CXT.tid                 = tid++;
+
+        MY_CXT.replace_ops = SvTRUE(get_sv("Devel::Cover::Replace_ops", FALSE));
+        NDEB(D(L, "running with Replace_ops as %d\n", MY_CXT.replace_ops));
+    }
+}
+
 static int runops_cover(pTHX)
 {
     dMY_CXT;
 
     NDEB(D(L, "entering runops_cover\n"));
 
-    initialise(aTHX);
-
 #if defined HAS_GETTIMEOFDAY
     elapsed();
 #elif defined HAS_TIMES
     cpu();
 #endif
 
-    if (REPLACE_OPS)
-    {
-        while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX)))
-        {
-            PERL_ASYNC_CHECK();
-        }
-    }
-    else for (;;)
+    for (;;)
     {
         NDEB(D(L, "running func %p from %p (%s)\n",
                PL_op->op_ppaddr, PL_op, OP_NAME(PL_op)));
@@ -1228,8 +1244,12 @@ set_criteria(flag)
     PREINIT:
         dMY_CXT;
     PPCODE:
+        MY_CXT.covering = flag;
         /* fprintf(stderr, "Cover set to %d\n", flag); */
-        PL_runops = (MY_CXT.covering = flag) ? runops_cover : runops_orig;
+        if (MY_CXT.replace_ops) {
+            return;
+        }
+        PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
 
 void
 add_criteria(flag)
@@ -1237,7 +1257,11 @@ add_criteria(flag)
     PREINIT:
         dMY_CXT;
     PPCODE:
-        PL_runops = (MY_CXT.covering |= flag) ? runops_cover : runops_orig;
+        MY_CXT.covering |= flag;
+        if (MY_CXT.replace_ops) {
+            return;
+        }
+        PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
 
 void
 remove_criteria(flag)
@@ -1245,7 +1269,11 @@ remove_criteria(flag)
     PREINIT:
         dMY_CXT;
     PPCODE:
-        PL_runops = (MY_CXT.covering &= ~flag) ? runops_cover : runops_orig;
+        MY_CXT.covering &= ~flag;
+        if (MY_CXT.replace_ops) {
+            return;
+        }
+        PL_runops = MY_CXT.covering ? runops_cover : runops_orig;
 
 unsigned
 get_criteria()
@@ -1338,11 +1366,12 @@ coverage(final)
     CODE:
         NDEB(D(L, "Getting coverage %d\n", final));
         if (final) finalise_conditions(aTHX);
-        ST(0) = sv_newmortal();
         if (MY_CXT.cover)
-            sv_setsv(ST(0), newRV_inc((SV*) MY_CXT.cover));
+            RETVAL = newRV_inc((SV*) MY_CXT.cover);
         else
-            ST(0) = &PL_sv_undef;
+            RETVAL = &PL_sv_undef;
+    OUTPUT:
+        RETVAL
 
 SV *
 get_key(o)
@@ -1407,33 +1436,14 @@ BOOT:
 #ifdef USE_ITHREADS
         MUTEX_INIT(&DC_mutex);
 #endif
-        PL_runops    = runops_cover;
+        initialise(aTHX);
+        if (MY_CXT.replace_ops) {
+            replace_ops(aTHX);
+        }
+        else {
+            PL_runops    = runops_cover;
+        }
 #if PERL_VERSION > 6
         PL_savebegin = TRUE;
 #endif
-        if (REPLACE_OPS)
-        {
-            int i;
-            for (i = 0; i < MAXO; i++)
-                MY_CXT.ppaddr[i] = PL_ppaddr[i];
-
-            PL_ppaddr[OP_NEXTSTATE] = MEMBER_TO_FPTR(dc_nextstate);
-#if PERL_VERSION <= 10
-            PL_ppaddr[OP_SETSTATE]  = MEMBER_TO_FPTR(dc_setstate);
-#endif
-            PL_ppaddr[OP_DBSTATE]   = MEMBER_TO_FPTR(dc_dbstate);
-            PL_ppaddr[OP_ENTERSUB]  = MEMBER_TO_FPTR(dc_entersub);
-            PL_ppaddr[OP_COND_EXPR] = MEMBER_TO_FPTR(dc_cond_expr);
-            PL_ppaddr[OP_AND]       = MEMBER_TO_FPTR(dc_and);
-            PL_ppaddr[OP_ANDASSIGN] = MEMBER_TO_FPTR(dc_andassign);
-            PL_ppaddr[OP_OR]        = MEMBER_TO_FPTR(dc_or);
-            PL_ppaddr[OP_ORASSIGN]  = MEMBER_TO_FPTR(dc_orassign);
-#if PERL_VERSION > 8
-            PL_ppaddr[OP_DOR]       = MEMBER_TO_FPTR(dc_dor);
-            PL_ppaddr[OP_DORASSIGN] = MEMBER_TO_FPTR(dc_dorassign);
-#endif
-            PL_ppaddr[OP_XOR]       = MEMBER_TO_FPTR(dc_xor);
-            PL_ppaddr[OP_REQUIRE]   = MEMBER_TO_FPTR(dc_require);
-            PL_ppaddr[OP_EXEC]      = MEMBER_TO_FPTR(dc_exec);
-        }
     }
@@ -1,7 +1,6 @@
 .gitignore
 all_versions
 BUGS
-buildperl
 CHANGES
 cover
 Cover.xs
@@ -40,6 +39,7 @@ lib/Devel/Cover/Truth_Table.pm
 lib/Devel/Cover/Tutorial.pod
 lib/Devel/Cover/Web.pm
 Makefile.PL
+makeh
 MANIFEST			This list of files
 MANIFEST.SKIP
 META.yml
@@ -102,6 +102,8 @@ tests/trivial
 tests/uncoverable
 TODO
 typemap
+utils/install/buildperl
+utils/install/System.pm
 test_output/cover/alias.5.006001
 test_output/cover/alias1.5.006001
 test_output/cover/alias1.5.008
@@ -114,11 +116,11 @@ test_output/cover/cond_and.5.008001
 test_output/cover/cond_branch.5.006001
 test_output/cover/cond_branch.5.008
 test_output/cover/cond_branch.5.008001
+test_output/cover/cond_branch.5.012000
 test_output/cover/cond_or.5.006001
 test_output/cover/cond_or.5.006002
 test_output/cover/cond_or.5.008
 test_output/cover/cond_or.5.008001
-test_output/cover/cond_or.5.009005
 test_output/cover/cond_or.5.010000
 test_output/cover/cond_xor.5.006001
 test_output/cover/cond_xor.5.008
@@ -149,7 +151,7 @@ test_output/cover/if.5.006001
 test_output/cover/if.5.008
 test_output/cover/inc_sub.5.006001
 test_output/cover/inc_sub.5.008
-test_output/cover/inc_sub.5.009005
+test_output/cover/inc_sub.5.010000
 test_output/cover/md5.5.006001
 test_output/cover/module1.5.006001
 test_output/cover/module1.5.008
@@ -182,7 +184,7 @@ test_output/cover/sort.5.008
 test_output/cover/special_blocks.5.006001
 test_output/cover/special_blocks.5.008
 test_output/cover/special_blocks.5.008001
-test_output/cover/special_blocks.5.009005
+test_output/cover/special_blocks.5.010000
 test_output/cover/statement.5.006001
 test_output/cover/subs_only.5.006001
 test_output/cover/t0.5.006001
@@ -195,3 +197,4 @@ test_output/cover/t2.5.008
 test_output/cover/t2.5.008001
 test_output/cover/trivial.5.006001
 test_output/cover/uncoverable.5.006001
+test_output/cover/uncoverable.5.012000
@@ -22,3 +22,5 @@ lib/Devel/Cover/Inc.pm$
 .debug$
 ^tmp/
 ^bugs/
+.git/
+.tar.bz2$
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Devel-Cover
-version:            0.65
+version:            0.66
 abstract:           Code coverage metrics for Perl
 author:
     - Paul Johnson (pjcj@cpan.org)
@@ -17,7 +17,7 @@ no_index:
     directory:
         - t
         - inc
-generated_by:       ExtUtils::MakeMaker version 6.55_02
+generated_by:       ExtUtils::MakeMaker version 6.56
 meta-spec:
     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
     version:  1.4
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -19,8 +19,8 @@ use File::Copy;
 
 $| = 1;
 
-my $Version  = "0.65";
-my $Date     = "8th August 2009";
+my $Version  = "0.66";
+my $Date     = "12th April 2010";
 my $Author   = 'pjcj@cpan.org';
 
 my @perlbug  = ("perlbug", "-a", $Author,
@@ -39,7 +39,7 @@ my @inc      = sort keys %inc;
 open I, ">lib/Devel/Cover/Inc.pm"
     or die "Cannot open lib/Devel/Cover/Inc.pm: $!";
 print I <<"EOI";
-# Copyright 2001-2009, Paul Johnson (pjcj\@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -108,7 +108,7 @@ for my $t (readdir D)
     print T <<EOT;
 #!$^X
 
-# Copyright 2002-2009, Paul Johnson (pjcj\@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj\@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -313,7 +313,7 @@ else
     print "not found\n\n$e\n";
 }
 
-my $latest_tested = "5.010001";
+my $latest_tested = "5.012000";
 print <<EOM if $] > $latest_tested;
 
 Devel::Cover $Version has not been tested with perl $].
@@ -476,10 +476,12 @@ dump :
 FONT = 8x13
 FONT = -sun-screen-medium-r-normal-*-*-70-*-*-m-*-sun-fontspecific
 FONT = "Bitstream Vera Sans Mono 8"
+GEOM = 260x85+0+0
 
 diff : out
-\t \$(PERL) -i -pe '\$\$t = index \$\$_, "time   code" if !defined \$\$t || \$\$t < 0; substr \$\$_, \$\$t, 7, "" if /^line  err   stmt/ ..  /^--------/ and length > \$\$t' \$(TEST).out
-\t gvim -d -font \$(FONT) `\$(PERL) -Mblib -MDevel::Cover::Test -e '\$\$t = Devel::Cover::Test->new("\$(TEST)", run_test_at_end => 0); print \$\$t->cover_gold'` \$(TEST).out
+\t \$(PERL) makeh strip_criterion 'time' \$(TEST).out
+\t \$(PERL) makeh strip_criterion ' pod' \$(TEST).out
+\t gvim -geom \$(GEOM) -d -font \$(FONT) `\$(PERL) -Mblib -MDevel::Cover::Test -e '\$\$t = Devel::Cover::Test->new("\$(TEST)", run_test_at_end => 0); print \$\$t->cover_gold'` \$(TEST).out
 
 gold : pure_all
 \t \$(PERL) create_gold \$(TEST)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -32,7 +32,7 @@ sub get_options
         [ map { ($_, "$_-thr") }
               qw( 5.6.1 5.6.2
                   5.8.0 5.8.1 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9
-                  5.10.0 5.10.1 5.11.0 ) ]
+                  5.10.0 5.10.1 5.11.0 5.12.0-RC5 ) ]
         unless @{$Options->{version}};
     $Options->{version} =
         [ grep eval { !system "perl$_ -v" }, @{$Options->{version}} ];
@@ -1,507 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
-
-# This software is free.  It is licensed under the same terms as Perl itself.
-
-# The latest version of this software should be available from my homepage:
-# http://www.pjcj.net
-
-use strict;
-
-require 5.004;
-
-use lib <~pjcj/g/tools/perl/local>;
-use lib <~pjcj/wesley/g/tools/perl/local>;
-
-use System "sys:dsys: command, error";
-
-my $Usage =
-    "Usage: $0 /perl/source/code /installation [perl|modules|manual|apache|mod_perl|cpancover]";
-
-my $Perl_src     = shift   || die "$Usage\n";
-my $Installation = shift   || die "$Usage\n";
-my $Options      = "@ARGV" || "perl modules manual cpancover";
-
-my $Src_dir      = <~pjcj/wesley/g/perl>;
-   $Src_dir      = <~pjcj/g/perl> unless -d $Src_dir;
-my $Perl_src_dir = "$Src_dir/src";
-my $Mod_src_dir  = "$Src_dir/modules";
-
-my $Perl_installation;
-my $Perl;
-my $Perl_dir;
-
-my $top = `pwd`;
-chomp $top;
-my $Build = "$top/build";
-
-sub get_src
-{
-    my ($package, $dir) = @_;
-    $dir ||= $Src_dir;
-    my $src = $package;
-    $src = "$package.tar.gz"       unless -f $src;
-    $src = "$package.tar.bz2"      unless -f $src;
-    $src = "$dir/$package"         unless -f $src;
-    $src = "$dir/$package.tar.gz"  unless -f $src;
-    $src = "$dir/$package.tar.bz2" unless -f $src;
-    $src = $package                unless -f $src;
-    # die "Can't find $package in $dir ($Src_dir)\n"    unless -f $src;
-    return $src;
-}
-
-sub building ($)
-{
-    my ($option) = @_;
-    return $Options =~ /\b$option\b/i;
-}
-
-sub uncompress
-{
-    $_[0] =~ /2$/ ? "bzcat" : "zcat"
-}
-
-sub build ($$$)
-{
-    my ($module, $src_dir, $opts) = @_;
-
-    chdir $Build or die "Can't chdir $Build: $!";
-    my $src = get_src($module, $src_dir);
-
-    $opts =
-    {
-        "unpack" => sub { dsys uncompress($src) . " $src | tar xf -" },
-        dir      => sub { $src =~ m|.*/(.*)\.tar\.gz$|; $1 },
-        config   => sub { dsys "$Perl Makefile.PL" },
-        make     => sub { dsys "make" },
-        test     => sub { sys  "make test" }, # some modules fail their tests...
-        install  => sub { dsys "make install" },
-        %$opts
-    };
-
-    print "build $module\n";
-    $opts->{"unpack"}->();
-    my $dir = $opts->{dir}->();
-    chdir $dir or die "Can't chdir $dir: $!";
-    $opts->{config}->();
-    $opts->{make}->();
-    $opts->{test}->();
-    $opts->{install}->();
-    print "built $module\n";
-}
-
-sub feed ($$)
-{
-    my ($command, $input) = @_;
-    open COMMAND, "| $command" or die "Cannot run $command:$!\n";
-    print COMMAND $input;
-    close COMMAND or die "Cannot run $command:$!\n";
-}
-
-sub main ()
-{
-    print "Building $Options\n";
-
-    dsys "rm -rf $Build";
-
-    mkdir $Build, 0750 or die "Can't mkdir $Build: $!";
-
-    $ENV{HOME} = $Perl_installation;
-
-    if (building "perl")
-    {
-        chdir $Build or die "Can't chdir $Build: $!";
-
-        dsys "rm -rf $Perl_installation";
-
-        dsys uncompress($Perl_src) . " $Perl_src | tar xf -";
-
-        chdir $Perl_dir or die "Can't chdir $Perl_dir: $!";
-
-        my @opts =
-        (
-          "-Dperladmin='paul\@pjcj.net'",
-          "-Dcc=gcc",
-          "-Dprefix=$Perl_installation",
-        );
-
-        dsys "sh ./Configure -des @opts";
-
-        dsys "make";
-        sys  "make test";
-        dsys "make install";
-
-        $Options =~ s/\bperl\b//;
-    }
-
-    $ENV{PATH} .= ":$Perl_installation/bin";  # dodgy stuff that just calls perl
-
-    exec "yes '' | $Perl $0 $Perl_src $Installation $Options" if $^X ne $Perl;
-
-    if (building "modules")
-    {
-        my @first =
-        qw(
-          HTML::Tagset
-        );
-
-        my @manual =
-        qw(
-          HTML::Parser
-          Term::ReadKey
-          Term::ReadLine::Perl
-        );
-
-        my @modules =
-        qw(
-          Bundle::LWP
-
-          ExtUtils::ParseXS
-          Archive::Tar
-          URI
-          Module::Build
-          Pod::Coverage
-          Bundle::CPAN
-          Module::Signature
-          Digest::base
-          Digest::MD5
-
-          AppConfig
-          Template
-
-          YAML
-          GD
-          Mail::SpamAssassin
-          Net::DNS
-
-          Compress::Zlib
-          Mime::Base64
-          LWP
-          Test::Reporter
-          DBI
-          DBD::mysql
-          Mail::Mailer
-          Bit::Vector
-          Date::Calc
-          DBD::Oracle
-          Digest::HMAC
-          Digest::SHA1
-          Net::SSLeay
-          IO::Socket::SSL
-          IO::Stringy
-          MIME::Lite
-          MIME::Tools
-          Net::Telnet
-          Parse::RecDescent
-          Spreadsheet::WriteExcel
-          XML::Parser
-          GD::Text
-          GD::Graph
-          Image::Info
-          Image::Size
-          XML::Parser::PerlSAX
-          XML::DOM
-          XML::XPath
-          XML::Simple
-          Apache::DBI
-          Apache::Session
-          Archive::Zip
-          SOAP::Lite
-          XML::Writer
-          Bundle::BioPerl
-          Bio::Perl
-          Error
-          Cache::Cache
-          HTML::Template
-          CGI::Application
-          CGI::Kwiki
-          CGI::Session
-          List::Util
-          Class::DBI
-          Class::Date
-          Config::IniFiles
-          Convert::ASN1
-          Crypt::Blowfish
-          Crypt::CBC
-          Crypt::DES
-          Crypt::SSLeay
-          Data::ShowTable
-          Date::Manip
-          Text::CSV_XS
-          DBD::CSV
-          DBD::ODBC
-          DBD::Pg
-          DBIx::SearchBuilder
-          IO::Tty
-          Expect
-          Params::Validate
-          HTML::Mason
-          HTML::Tree
-          Inline
-          Apache::Request
-          Mac::Carbon
-          Mac::Glue
-          Mail::Box
-          Mail::Sendmail
-          MD5
-          MP3::Info
-          Msql
-          Net::Daemon
-          Net::SNMP
-          Net::SSH::Perl
-          PAR
-          PDF::API2
-          PDL
-          Net::LDAP
-          Image::Magick
-          Pod::Simple
-          POE
-          Regexp::Common
-          SPOPS
-          Spreadsheet::ParseExcel
-          Text::Iconv
-          Text::Template
-          Time::ParseDate
-          Time::Zone
-          WWW::Mechanize
-          XML::DOM
-          XML::NamespaceSupport
-          XML::SAX
-          XML::LibXML
-
-          Maypole
-
-          Test::Memory::Cycle
-          Test::Pod::Coverage
-          Data/Grove.pm
-          Tie::IxHash
-
-          Bundle::HTML::Mason
-          Bundle::XML
-          Bundle::BricolagePlus
-          Bundle::Perl6
-          Bundle::Slash
-          Bundle::DateTime
-          Bundle::Tk
-          Bundle::SSH
-          Bundle::Test
-        );
-
-        # @modules = @modules[0 .. 11];
-
-        my @not_so_hot =
-        qw(
-          Bundle::Apache
-        );
-
-        my $config =
-        {
-            "Term::ReadLine::Perl" =>
-            {
-                test => sub
-                {
-                    # interactive test - just skip it
-                },
-            },
-            "HTML::Parser" =>
-            {
-                config => sub
-                {
-                    my $input = <<EOF;
-n
-EOF
-                    feed "$Perl Makefile.PL", $input;
-                },
-            },
-
-            "Msql-Mysql-modules-1.2215" =>
-            {
-                config => sub
-                {
-                    dsys "$Perl Makefile.PL" .
-                         " --noprompt" .
-                         " --debug" .
-                         " --verbose" .
-                         " --mysql-install" .
-                         " --nomsql-install" .
-                         " --mysql-incdir=/usr/local/pkg/mysql/include/mysql" .
-                         " --mysql-libdir=/usr/local/pkg/mysql/lib/mysql" .
-                         " --mysql-test-db test" .
-                         " --mysql-test-user root" .
-                         " --mysql-test-pass" .
-                         " --mysql-test-host ride"
-                },
-            },
-        };
-
-        my $f = "$Perl_installation/.cpan";
-        -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
-        $f.= "/CPAN";
-        -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
-        $f.= "/MyConfig.pm";
-        open F, ">", $f         or die "Can't open $f: $!";
-        print F <<EOF;
-\$CPAN::Config = {
-  'build_cache' => q[100000],
-  'build_dir' => q[$Perl_installation/.cpan/build],
-  'cache_metadata' => q[1],
-  'cpan_home' => q[$Perl_installation/.cpan],
-  'dontload_hash' => {  },
-  'ftp' => q[/usr/bin/ftp],
-  'ftp_proxy' => q[],
-  'getcwd' => q[cwd],
-  'gpg' => q[/usr/bin/gpg],
-  'gzip' => q[/bin/gzip],
-  'histfile' => q[$Perl_installation/.cpan/histfile],
-  'histsize' => q[100],
-  'http_proxy' => q[],
-  'inactivity_timeout' => q[0],
-  'index_expire' => q[1],
-  'inhibit_startup_message' => q[0],
-  'keep_source_where' => q[$Perl_installation/.cpan_sources],
-  'lynx' => q[/usr/bin/lynx],
-  'make' => q[/usr/bin/make],
-  'make_arg' => q[],
-  'make_install_arg' => q[],
-  'makepl_arg' => q[],
-  'ncftp' => q[],
-  'ncftpget' => q[],
-  'no_proxy' => q[],
-  'pager' => q[less],
-  'prerequisites_policy' => q[follow],
-  'scan_cache' => q[atstart],
-  'shell' => q[/bin/zsh],
-  'tar' => q[/bin/tar],
-  'term_is_latin' => q[1],
-  'unzip' => q[/usr/bin/unzip],
-  'urllist' => [q[ftp://sunsite.cnlab-switch.ch/mirror/CPAN/], q[ftp://ftp.k-informatik.ch/pub/CPAN/]],
-  'wget' => q[/usr/bin/wget],
-};
-1;
-EOF
-        close F or die "Can't close $f: $!";
-
-        eval "use CPAN";
-
-        my $install = sub
-        {
-            my ($m) = @_;
-            print "Installing $m via CPAN\n";
-            # I wish I knew how to do this properly.  I just want to
-            # force install the thing.
-            my $mod = CPAN::Shell->expandany($m);
-            if ($mod)
-            {
-                return if $mod->uptodate;
-                # $mod->force("install");
-                CPAN::Shell->install($_);
-            }
-            else
-            {
-                CPAN::Shell->install($_);
-            }
-            # CPAN::Shell->expandany($_)->install;
-        };
-
-        $install->($_) for @first;
-
-        for my $mod (@manual)
-        {
-            # my @mods = CPAN::Complete::cpl_any($mod);
-            # print "Mods for $mod are: @mods\n";
-            # next;
-            print "Installing $mod \n";
-            next unless building "manual";
-            my $m = CPAN::Shell->expandany($mod);
-            print "Getting version ", $m->cpan_version, "\n";
-            $m->get;
-            my $b = $m->cpan_file;
-            $b =~ s|.*/||;
-            $b =~ s|\.tar.gz||;
-            $b = "$Perl_installation/.cpan/build/$b";
-            die "Can't find build dir $b" unless -d $b;
-            # use Data::Dumper;  print Dumper $m;
-            print "Building in $b\n";
-            my $c =
-            {
-                %{$config->{$mod} || {}},
-                unpack  => sub {},
-                dir     => sub { $b },
-                # make    => sub {},
-                # test    => sub {},
-                # install => sub { $m->install },
-                # install => sub { $m->install; dsys "make test install" },
-            };
-            build $mod, $b, $c;
-        }
-
-        $install->($_) for @modules;
-    }
-
-    my $apache   = "apache_1.3.31";
-    my $mod_perl = "mod_perl-1.29";
-
-    build $apache,
-          $Perl_src_dir,
-          {
-              config  => sub {},
-              make    => sub {},
-              test    => sub {},
-              install => sub {},
-          }
-        if building "apache";
-
-    build $mod_perl,
-          $Perl_src_dir,
-          {
-              config => sub
-              {
-                  dsys "$Perl Makefile.PL" .
-                       " APACHE_SRC=../$apache/src" .
-                       " DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1";
-              },
-          }
-        if building "mod_perl";
-
-    build $apache,
-          $Perl_src_dir,
-          {
-              "unpack" => sub {},
-              config   => sub
-              {
-                  dsys "./configure" .
-                       " --prefix=$Installation/$apache" .
-                       " --enable-module=rewrite" .
-                       " --activate-module=src/modules/perl/libperl.a";
-              },
-          }
-        if building "apache";
-
-    if (building "cpancover")
-    {
-        (my $dc = $0) =~ s|/[^/]+$||;
-        chdir $dc or die "Can't chdir $dc";
-        system "$Perl Makefile.PL";
-        system "make clean";
-        system "$Perl Makefile.PL";
-        system "make test";
-        system "make install";
-        my $od = "$Perl_installation/cpancover." . time;
-        my $c = "cpancover -outputdir $od" .
-                " -dir $Perl_installation/.cpan/build";
-        print "Running $c\n";
-        exec "yes '' | $c";
-    }
-}
-
-$Perl_src = get_src($Perl_src, $Perl_src_dir);
-
-($Perl_dir) = $Perl_src =~ m!.*/(.*)\.tar\.(gz|bz2)$!;
-print "perl src is $Perl_src\n";
-print "perl dir is $Perl_dir\n";
-
-$Perl_installation .= "$Installation/$Perl_dir";
-$Perl = "$Perl_installation/bin/perl";
-
-main
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,9 +12,9 @@ require 5.6.1;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 use Config;
 use Cwd "abs_path";
@@ -82,7 +82,6 @@ sub delete_db
 {
     for my $del (@_)
     {
-        print "Deleting database $del\n" unless $Options->{silent};
         my $db = Devel::Cover::DB->new(db => $del);
         unless ($db->is_valid)
         {
@@ -90,6 +89,7 @@ sub delete_db
                 unless $Options->{silent};
             next;
         }
+        print "Deleting database $del\n" if $db->exists && !$Options->{silent};
         $db->delete;
         rmtree($del);
     }
@@ -444,11 +444,11 @@ See the BUGS file.
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,9 +12,9 @@ require 5.6.1;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 use Cwd ();
 use Getopt::Long;
@@ -341,7 +341,7 @@ package Devel::Cover::Cpancover::Template::Provider;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Template::Provider";
 
@@ -378,8 +378,8 @@ $Templates{html} = <<'EOT';
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
 Devel::Cover is free. It is licensed under the same terms as Perl itself.
 The latest version of Devel::Cover should be available from my homepage:
 http://www.pjcj.net
@@ -479,11 +479,11 @@ The following exit values are returned:
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,14 +12,14 @@ require 5.6.1;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use blib;
 
 use Config;
 exit if $Config{useithreads};
 
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
 
 my @tests = @ARGV;
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,9 +12,9 @@ require 5.6.1;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 use File::Path;
 use Getopt::Long;
@@ -168,11 +168,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Annotation::Random;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use Getopt::Long;
 
@@ -103,11 +103,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Annotation::Svk;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use Getopt::Long;
 use Digest::MD5;
@@ -175,11 +175,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Branch;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Criterion";
 
@@ -88,11 +88,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Branch";
 
@@ -50,11 +50,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_and_2;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Condition";
 
@@ -46,11 +46,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_and_3;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Condition";
 
@@ -46,11 +46,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_or_2;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Condition";
 
@@ -46,11 +46,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_or_3;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Condition";
 
@@ -46,11 +46,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Condition_xor_4;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Condition";
 
@@ -45,11 +45,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,19 +10,19 @@ package Devel::Cover::Criterion;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::Statement       0.65;
-use Devel::Cover::Branch          0.65;
-use Devel::Cover::Condition       0.65;
-use Devel::Cover::Condition_or_2  0.65;
-use Devel::Cover::Condition_or_3  0.65;
-use Devel::Cover::Condition_and_2 0.65;
-use Devel::Cover::Condition_and_3 0.65;
-use Devel::Cover::Condition_xor_4 0.65;
-use Devel::Cover::Subroutine      0.65;
-use Devel::Cover::Time            0.65;
-use Devel::Cover::Pod             0.65;
+use Devel::Cover::Statement       0.66;
+use Devel::Cover::Branch          0.66;
+use Devel::Cover::Condition       0.66;
+use Devel::Cover::Condition_or_2  0.66;
+use Devel::Cover::Condition_or_3  0.66;
+use Devel::Cover::Condition_and_2 0.66;
+use Devel::Cover::Condition_and_3 0.66;
+use Devel::Cover::Condition_xor_4 0.66;
+use Devel::Cover::Subroutine      0.66;
+use Devel::Cover::Time            0.66;
+use Devel::Cover::Pod             0.66;
 
 sub coverage    { $_[0][0] }
 sub information { $_[0][1] }
@@ -97,11 +97,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,9 +10,9 @@ package Devel::Cover::DB::File;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::Criterion 0.65;
+use Devel::Cover::Criterion 0.66;
 
 sub calculate_summary
 {
@@ -79,11 +79,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -16,7 +16,7 @@ use Storable;
 
 use Devel::Cover::DB;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 our $AUTOLOAD;
 
 sub new
@@ -323,11 +323,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,11 +10,11 @@ package Devel::Cover::DB;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::Criterion     0.65;
-use Devel::Cover::DB::File      0.65;
-use Devel::Cover::DB::Structure 0.65;
+use Devel::Cover::Criterion     0.66;
+use Devel::Cover::DB::File      0.66;
+use Devel::Cover::DB::Structure 0.66;
 
 use Carp;
 use File::Path;
@@ -104,6 +104,9 @@ sub delete
     $self->{db} = $db if ref $self;
     croak "No db specified" unless length $db;
 
+    return $self unless -d $db;
+
+    # TODO - just delete the directory?
     opendir DIR, $db or die "Can't opendir $db: $!";
     my @files = map "$db/$_", map /(.*)/ && $1, grep !/^\.\.?/, readdir DIR;
     closedir DIR or die "Can't closedir $db: $!";
@@ -160,7 +163,8 @@ sub validate_db
     my $self = shift;
 
     # Check validity of the db.  It is valid if the $DB file is there, or if it
-    # is not there but the db directory is empty.
+    # is not there but the db directory is empty, or if there is no db
+    # directory.
     # die if the db is invalid.
 
     # just warn for now
@@ -170,9 +174,16 @@ sub validate_db
     $self
 }
 
+sub exists
+{
+    my $self = shift;
+    -d $self->{db}
+}
+
 sub is_valid
 {
     my $self = shift;
+    return 1 if !-e $self->{db};
     return 1 if -e "$self->{db}/$DB";
     opendir my $fh, $self->{db} or return 0;
     for my $file (readdir $fh)
@@ -996,11 +1007,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,7 +12,7 @@ require 5.8.0;  # My patches to B::Concise didn't get released till 5.8.0.
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use Devel::Cover qw( -ignore blib -ignore \\wB\\w );
 use B::Concise   qw( set_style add_callback );
@@ -112,11 +112,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Pod;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Criterion";
 
@@ -66,11 +66,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -18,9 +18,9 @@ package Devel::Cover::Report::Compilation;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 # TODO - uncoverable code?
 
@@ -169,11 +169,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Report::Html;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Report::Html_minimal";
 
@@ -46,11 +46,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,10 +10,10 @@ package Devel::Cover::Report::Html_basic;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Web 0.65 "write_file";
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Web 0.66 "write_file";
 
 use Getopt::Long;
 use Template 2.00;
@@ -448,7 +448,7 @@ package Devel::Cover::Report::Html_basic::Template::Provider;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Template::Provider";
 
@@ -468,8 +468,8 @@ $Templates{html} = <<'EOT';
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2008, Paul Johnson (pjcj@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 Devel::Cover is free. It is licensed under the same terms as Perl itself.
 The latest version of Devel::Cover should be available from my homepage:
 http://www.pjcj.net
@@ -769,11 +769,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -4,10 +4,10 @@ use strict;
 use warnings;
 use CGI;
 use Getopt::Long;
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Truth_Table 0.65;
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Truth_Table 0.66;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 #-------------------------------------------------------------------------------
 # Subroutine : get_coverage_for_line
@@ -261,8 +261,8 @@ sub print_html_header {
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
 Devel::Cover is free. It is licensed under the same terms as Perl itself.
 The latest version of Devel::Cover should be available from my homepage:
 http://www.pjcj.net
@@ -776,11 +776,11 @@ Devel::Cover
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free. It is licensed under the same terms as Perl itself.
 
@@ -2,10 +2,10 @@ package Devel::Cover::Report::Html_subtle;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
-use Devel::Cover::Truth_Table 0.65;
+use Devel::Cover::DB 0.66;
+use Devel::Cover::Truth_Table 0.66;
 
 use Template 2.00;
 use CGI;
@@ -386,7 +386,7 @@ package Devel::Cover::Report::Html_subtle::Template::Provider;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Template::Provider";
 
@@ -404,8 +404,8 @@ sub fetch {
 $Templates{html} = <<'EOT';
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-This file was generated by Devel::Cover Version 0.65
-Devel::Cover is copyright 2001-2006, Paul Johnson (pjcj\@cpan.org)
+This file was generated by Devel::Cover Version 0.66
+Devel::Cover is copyright 2001-2010, Paul Johnson (pjcj\@cpan.org)
 Devel::Cover is free. It is licensed under the same terms as Perl itself.
 The latest version of Devel::Cover should be available from my homepage:
 http://www.pjcj.net
@@ -728,11 +728,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,9 +10,9 @@ package Devel::Cover::Report::Sort;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 sub print_sort
 {
@@ -95,11 +95,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,9 +10,9 @@ package Devel::Cover::Report::Text;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 
 sub print_runs
 {
@@ -313,11 +313,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -2,9 +2,9 @@ package Devel::Cover::Report::Text2;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
-use Devel::Cover::DB 0.65;
+use Devel::Cover::DB 0.66;
 use Devel::Cover::Truth_Table;
 
 my %format = (
@@ -191,11 +191,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Statement;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Criterion";
 
@@ -51,11 +51,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Subroutine;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Criterion";
 
@@ -50,11 +50,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,14 +10,14 @@ package Devel::Cover::Test;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use Carp;
 
 use File::Spec;
 use Test;
 
-use Devel::Cover::Inc 0.65;
+use Devel::Cover::Inc 0.66;
 
 my $Test;
 
@@ -348,6 +348,7 @@ sub create_gold
         next if $l =~ /^Devel::Cover: merging run/;
         $l =~ s/^($_: ).*$/$1.../
             for "Run", "Perl version", "OS", "Start", "Finish";
+        $l =~ s/^(Reading database from ).*$/$1.../;
         print STDERR $l if $debug;
         print G $l;
         $ng .= $l;
@@ -355,13 +356,17 @@ sub create_gold
     close T or die "Cannot close $cover_com: $!";
     close G or die "Cannot close $new_gold: $!";
 
+    print STDERR "gv is $gv and this is $]\n" if $debug;
+    print STDERR "gold is $gold and new_gold is $new_gold\n" if $debug;
     unless ($gv eq "5.0" || $gv eq $])
     {
         open G, "$gold" or die "Cannot open $gold: $!";
         my $g = do { local $/; <G> };
         close G or die "Cannot close $gold: $!";
 
-        # print STDERR "checking $new_gold against $gold\n";
+        print STDERR "checking $new_gold against $gold\n" if $debug;
+        # print "--[$ng]--\n";
+        # print "--[$g]--\n";
         if ($ng eq $g)
         {
             print "Output from $new_gold matches $gold\n";
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@ package Devel::Cover::Time;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use base "Devel::Cover::Criterion";
 
@@ -71,11 +71,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -180,7 +180,7 @@ sub error {
 package Devel::Cover::Truth_Table;
 use warnings;
 use strict;
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 #-------------------------------------------------------------------------------
 # Subroutine : new()
@@ -567,7 +567,7 @@ None that I'm aware of...
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENSE
 
@@ -163,11 +163,11 @@ basis for future research.
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
 # except where otherwise noted.
 
 # This software is free.  It is licensed under the same terms as Perl itself,
@@ -12,7 +12,7 @@ package Devel::Cover::Web;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use Exporter;
 
@@ -934,11 +934,11 @@ Huh?
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2007-2009, Paul Johnson (pjcj@cpan.org) except where otherwise noted.
+Copyright 2007-2010, Paul Johnson (pjcj@cpan.org) except where otherwise noted.
 
 This software is free.  It is licensed under the same terms as Perl itself,
 except where otherwise noted.
@@ -1,4 +1,4 @@
-# Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,13 +10,13 @@ package Devel::Cover;
 use strict;
 use warnings;
 
-our $VERSION = "0.65";
+our $VERSION = "0.66";
 
 use DynaLoader ();
 our @ISA = "DynaLoader";
 
-use Devel::Cover::DB  0.65;
-use Devel::Cover::Inc 0.65;
+use Devel::Cover::DB  0.66;
+use Devel::Cover::Inc 0.66;
 
 use B qw( class ppname main_cv main_start main_root walksymtable OPf_KIDS );
 use B::Debug;
@@ -84,6 +84,7 @@ use vars '$File',                        # Last filename we saw.  (localised)
                                          # over conditions.  (localised)
          '%Files',                       # Whether we are interested in files.
                                          # Used in runops function.
+         '$Replace_ops',
          '$Silent';                      # Output nothing. Can be used anywhere.
 
 BEGIN
@@ -249,6 +250,8 @@ EOM
     POSIX::_exit(1);
 }
 
+$Replace_ops = 1;
+
 sub import
 {
     return if $Initialised;
@@ -256,7 +259,7 @@ sub import
     my $class = shift;
 
     my @o = (@_, split ",", $ENV{DEVEL_COVER_OPTIONS} || "");
-    # print STDERR __PACKAGE__, ": Parsing options from [@_]\n";
+    # print STDERR __PACKAGE__, ": Parsing options from [@o]\n";
 
     my $blib = -d "blib";
     @Inc     = () if "@o" =~ /-inc /;
@@ -265,24 +268,27 @@ sub import
     while (@o)
     {
         local $_ = shift @o;
-        /^-silent/    && do { $Silent    = shift @o; next };
-        /^-dir/       && do { $Dir       = shift @o; next };
-        /^-db/        && do { $DB        = shift @o; next };
-        /^-merge/     && do { $Merge     = shift @o; next };
-        /^-summary/   && do { $Summary   = shift @o; next };
-        /^-blib/      && do { $blib      = shift @o; next };
-        /^-subs_only/ && do { $Subs_only = shift @o; next };
-        /^-coverage/  &&
+        /^-silent/      && do { $Silent      = shift @o; next };
+        /^-dir/         && do { $Dir         = shift @o; next };
+        /^-db/          && do { $DB          = shift @o; next };
+        /^-merge/       && do { $Merge       = shift @o; next };
+        /^-summary/     && do { $Summary     = shift @o; next };
+        /^-blib/        && do { $blib        = shift @o; next };
+        /^-subs_only/   && do { $Subs_only   = shift @o; next };
+        /^-replace_ops/ && do { $Replace_ops = shift @o; next };
+        /^-coverage/    &&
             do { $Coverage{+shift @o} = 1 while @o && $o[0] !~ /^[-+]/; next };
-        /^[-+]ignore/ &&
+        /^[-+]ignore/   &&
             do { push @Ignore,   shift @o while @o && $o[0] !~ /^[-+]/; next };
-        /^[-+]inc/    &&
+        /^[-+]inc/      &&
             do { push @Inc,      shift @o while @o && $o[0] !~ /^[-+]/; next };
-        /^[-+]select/ &&
+        /^[-+]select/   &&
             do { push @Select,   shift @o while @o && $o[0] !~ /^[-+]/; next };
         warn __PACKAGE__ . ": Unknown option $_ ignored\n";
     }
 
+    bootstrap Devel::Cover $VERSION;
+
     if (defined $Dir)
     {
         # Die tainting.
@@ -298,9 +304,7 @@ sub import
 
     unless (-d $DB)
     {
-        # Nasty hack to keep 5.6.1 happy.
         mkdir $DB, 0700 or croak "Can't mkdir $DB: $!\n";
-        chmod 0700, $DB or croak "Can't chmod $DB: $!\n";
     }
     $DB = $1 if Cwd::abs_path($DB) =~ /(.*)/;
     Devel::Cover::DB->delete($DB) unless $Merge;
@@ -681,7 +685,6 @@ sub report
     unless (-d $DB)
     {
         mkdir $DB, 0700 or croak "Can't mkdir $DB: $!\n";
-        chmod 0700, $DB or croak "Can't chmod $DB: $!\n";
     }
     $DB .= "/$run";
 
@@ -1164,8 +1167,6 @@ sub get_cover
     $de
 }
 
-bootstrap Devel::Cover $VERSION;
-
 1
 
 __END__
@@ -1301,8 +1302,9 @@ if the tests fail and you would like nice output telling you why.
  -merge val          - Merge databases, for multiple test benches (default on).
  -select RE          - Set REs of files to select (default none).
  +select RE          - Append to REs of files to select.
- -silent val         - Don't print informational messages (default off)
- -subs_only val      - Only cover code in subroutine bodies (default off)
+ -silent val         - Don't print informational messages (default off).
+ -subs_only val      - Only cover code in subroutine bodies (default off).
+ -replace_ops val    - Use op replacing rather than runops (default on).
  -summary val        - Print summary information iff val is true (default on).
 
 =head2 More on Coverage Options
@@ -1440,11 +1442,11 @@ See the BUGS file.  And the TODO file.
 
 =head1 VERSION
 
-Version 0.65 - 8th August 2009
+Version 0.66 - 12th April 2010
 
 =head1 LICENCE
 
-Copyright 2001-2009, Paul Johnson (pjcj@cpan.org)
+Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
 
 This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+
+# Copyright 2001-2010, Paul Johnson (pjcj@cpan.org)
+
+# This software is free.  It is licensed under the same terms as Perl itself.
+
+# The latest version of this software should be available from my homepage:
+# http://www.pjcj.net
+
+use strict;
+use warnings;
+
+my $Command =
+{
+    strip_criterion => sub
+    {
+        my ($command, $criterion, $file) = @_;
+        my $t;
+        local ($^I, @ARGV) = (".bak", $file);
+        while (<>)
+        {
+            $t = index $_, "$criterion   code" if !defined $t || $t < 0;
+            substr $_, $t, 7, ""
+                if /^line  err   stmt/ .. /^--------/ and $t > -1 and length > $t;
+            print;
+        }
+    },
+};
+
+sub main
+{
+    my ($command) = @ARGV;
+    die "No such command: $command" unless $Command->{$command};
+    $Command->{$command}->(@ARGV)
+}
+
+main
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/alias
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Alias1.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -67,7 +67,7 @@ tests/alias1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Alias1.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -76,7 +76,7 @@ tests/alias1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/branch_return_sub
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/branch_return_sub
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 Devel::Cover: Deleting old coverage for changed file tests/change
 
 
@@ -27,7 +27,7 @@ tests/change
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_and
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_branch
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -0,0 +1,489 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File                                         stmt   bran   cond    sub  total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/cond_branch                            89.4   79.3   19.1  100.0   73.7
+Total                                        89.4   79.3   19.1  100.0   73.7
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/cond_branch
+
+line  err   stmt   bran   cond    sub   code
+1                                       #!/usr/bin/perl
+2                                       
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
+4                                       
+5                                       # This software is free.  It is licensed under the same terms as Perl itself.
+6                                       
+7                                       # The latest version of this software should be available from my homepage:
+8                                       # http://www.pjcj.net
+9                                       
+10             1                    1   use strict;
+               1                        
+               1                        
+11             1                    1   use warnings;
+               1                        
+               1                        
+12                                      
+13             1                        my @x;
+14                                      
+15             1                        for my $y (0, 0)
+16                                      {
+17             2                            for my $z (1, 0)
+18                                          {
+19    ***      4     50     33                  if ($y && $z)
+20                                              {
+21    ***      0                                    $x[1]++;
+22                                              }
+23                                              else
+24                                              {
+25             4                                    $x[2]++;
+26                                              }
+27    ***      4    100     66                  if ($y || $z)
+28                                              {
+29             2                                    $x[3]++;
+30                                              }
+31                                              else
+32                                              {
+33             2                                    $x[4]++;
+34                                              }
+35                                      
+36    ***      4     50                         $y && $x[5]++;
+37    ***      4     50                         $x[5]++ if $y;
+38                                      
+39             4    100                         $z && $x[6]++;
+40             4    100                         $x[6]++ if $z;
+41                                      
+42    ***      4     50                         $y || $x[7]++;
+43    ***      4     50                         $x[7]++ unless $y;
+44                                      
+45             4    100                         $z || $x[8]++;
+46             4    100                         $x[8]++ unless $z;
+47                                      
+48    ***      4     50                         $y ? $x[9]++  : $x[10]++;
+49             4    100                         $z ? $x[11]++ : $x[12]++;
+50                                      
+51    ***      4     50     33                  if ($y)
+      ***            50     66          
+                    100                 
+52                                              {
+53    ***      0                                    $x[13]++;
+54                                              }
+55                                              elsif ($y && $z)
+56                                              {
+57    ***      0                                    $x[14]++;
+58                                              }
+59                                              elsif ($y || $z)
+60                                              {
+61             2                                    $x[15]++;
+62                                              }
+63                                              else
+64                                              {
+65             2                                    $x[16]++;
+66                                              }
+67                                      
+68    ***      4     50     33                  $y && $z && $x[17]++; $y && $z && $x[18]++;
+      ***      4     50     33          
+69                                          }
+70                                      }
+71                                      
+72             1                        for my $y (0, 1)
+73                                      {
+74             2    100                     $y || next;
+75             1                            $x[18]++;
+76                                      }
+77                                      
+78             1                        for my $y (1, 0)
+79                                      {
+80             2    100                     $y || next;
+81             1                            $x[19]++;
+82                                      }
+83                                      
+84             1                        for my $y (0, 1)
+85                                      {
+86             2    100                     $y && next;
+87             1                            $x[20]++;
+88                                      }
+89                                      
+90             1                        for my $y (1, 0)
+91                                      {
+92             2    100                     $y && next;
+93             1                            $x[21]++;
+94                                      }
+95                                      
+96             1                        for my $y (0, 1)
+97                                      {
+98             1                    1       no warnings "void";
+               1                        
+               1                        
+99    ***      2             0              my $w = $y xor next;
+100   ***      0                            $x[22]++;
+101                                     }
+102                                     
+103            1                        for my $y (1, 0)
+104                                     {
+105            1                    1       no warnings "void";
+               1                        
+               1                        
+106   ***      2             0              my $w = $y xor next;
+107   ***      0                            $x[23]++;
+108                                     }
+109                                     
+110            1                        for my $y (0, 1)
+111                                     {
+112   ***      1     50                     $y || last;
+113   ***      0                            $x[24]++;
+114                                     }
+115                                     
+116            1                        for my $y (1, 0)
+117                                     {
+118            2    100                     $y || last;
+119            1                            $x[25]++;
+120                                     }
+121                                     
+122            1                        for my $y (0, 1)
+123                                     {
+124            2    100                     $y && last;
+125            1                            $x[26]++;
+126                                     }
+127                                     
+128            1                        for my $y (1, 0)
+129                                     {
+130   ***      1     50                     $y && last;
+131   ***      0                            $x[27]++;
+132                                     }
+133                                     
+134            1                        for my $y (0, 1)
+135                                     {
+136            1                    1       no warnings "void";
+               1                        
+               1                        
+137   ***      1             0              my $w = $y xor last;
+138   ***      0                            $x[28]++;
+139                                     }
+140                                     
+141            1                        for my $y (1, 0)
+142                                     {
+143            1                    1       no warnings "void";
+               1                        
+               1                        
+144   ***      1             0              my $w = $y xor last;
+145   ***      0                            $x[29]++;
+146                                     }
+147                                     
+148            1                        for my $y (0, 1)
+149                                     {
+150   ***      1     50                     $y || goto G1;
+151   ***      0                            $x[30]++;
+152                                     }
+153                                     G1:
+154                                     
+155            1                        for my $y (1, 0)
+156                                     {
+157            2    100                     $y || goto G2;
+158            1                            $x[31]++;
+159                                     }
+160                                     G2:
+161                                     
+162            1                        for my $y (0, 1)
+163                                     {
+164            2    100                     $y && goto G3;
+165            1                            $x[32]++;
+166                                     }
+167                                     G3:
+168                                     
+169            1                        for my $y (1, 0)
+170                                     {
+171   ***      1     50                     $y && goto G4;
+172   ***      0                            $x[33]++;
+173                                     }
+174                                     G4:
+175                                     
+176            1                        for my $y (0, 1)
+177                                     {
+178            1                    1       no warnings "void";
+               1                        
+               1                        
+179   ***      1             0              my $w = $y xor goto G5;
+180   ***      0                            $x[34]++;
+181                                     }
+182                                     G5:
+183                                     
+184            1                        for my $y (1, 0)
+185                                     {
+186            1                    1       no warnings "void";
+               1                        
+               1                        
+187   ***      1             0              my $w = $y xor goto G6;
+188   ***      0                            $x[35]++;
+189                                     }
+190                                     G6:
+191                                     
+192            1                        my $z;
+193                                     
+194            1                        $z = -1;
+195            1                        for my $y (0, 1)
+196                                     {
+197            3                            $z++;
+198            3    100                     last if $z > 1;
+199            2    100                     $z || redo;
+200            1                            $x[36]++;
+201                                     }
+202                                     
+203            1                        $z = -1;
+204            1                        for my $y (1, 0)
+205                                     {
+206            3                            $z++;
+207            3    100                     last if $z > 1;
+208            2    100                     !$z || redo;
+209            1                            $x[37]++;
+210                                     }
+211                                     
+212            1                        $z = -1;
+213            1                        for my $y (0, 1)
+214                                     {
+215            3                            $z++;
+216            3    100                     last if $z > 1;
+217            2    100                     $z && redo;
+218            1                            $x[38]++;
+219                                     }
+220                                     
+221            1                        $z = -1;
+222            1                        for my $y (1, 0)
+223                                     {
+224            3                            $z++;
+225            3    100                     last if $z > 1;
+226            2    100                     !$z && redo;
+227            1                            $x[39]++;
+228                                     }
+229                                     
+230            1                        $z = -1;
+231            1                        for my $y (0, 1)
+232                                     {
+233            3                            $z++;
+234            3    100                     last if $z > 1;
+235            1                    1       no warnings "void";
+               1                        
+               1                        
+236   ***      2             0              my $w = $z xor redo;
+237   ***      0                            $x[40]++;
+238                                     }
+239                                     
+240            1                        $z = -1;
+241            1                        for my $y (1, 0)
+242                                     {
+243            3                            $z++;
+244            3    100                     last if $z > 1;
+245            1                    1       no warnings "void";
+               1                        
+               1                        
+246   ***      2             0              my $w = !$z xor redo;
+247   ***      0                            $x[41]++;
+248                                     }
+249                                     
+250            1                        my $s;
+251                                     $s = sub
+252                                     {
+253            4    100             4       shift || return;
+254            2                            $x[42]++;
+255            1                        };
+256                                     
+257            1                        for my $y (0, 1)
+258                                     {
+259            2                            $s->($y)
+260                                     }
+261                                     
+262            1                        for my $y (1, 0)
+263                                     {
+264            2                            $s->($y)
+265                                     }
+266                                     
+267                                     $s = sub
+268                                     {
+269            4    100             4       shift && return;
+270            2                            $x[43]++;
+271            1                        };
+272                                     
+273            1                        for my $y (0, 1)
+274                                     {
+275            2                            $s->($y)
+276                                     }
+277                                     
+278            1                        for my $y (1, 0)
+279                                     {
+280            2                            $s->($y)
+281                                     }
+282                                     
+283                                     $s = sub
+284                                     {
+285            1                    1       no warnings "void";
+               1                        
+               1                        
+286   ***      4             0      4       shift xor return;
+287   ***      0                            $x[44]++;
+288            1                        };
+289                                     
+290            1                        for my $y (0, 1)
+291                                     {
+292            2                            $s->($y)
+293                                     }
+294                                     
+295            1                        for my $y (1, 0)
+296                                     {
+297            2                            $s->($y)
+298                                     }
+299                                     
+300            1                        my ($a, $b) = (0, 1);
+301                                     
+302   ***      1     50     33          if ($a && $b)
+      ***            50     33          
+      ***            50     50          
+303                                     {
+304   ***      0                            print "path 1\n";
+305                                     }
+306                                     elsif (!$a && !$b)
+307                                     {
+308   ***      0                            print "path 2\n";
+309                                     }
+310                                     elsif ($b || 0)
+311                                     {
+312            1                            print "path 3\n";
+313   ***      1     50     33              if (!$b || $a)
+      ***            50     33          
+314                                         {
+315   ***      0                                print "path 4\n";
+316                                         }
+317                                         elsif (!$a && $b)
+318                                         {
+319            1                                print "path 5\n";
+320                                         }
+321                                     }
+
+
+Branches
+--------
+
+line  err      %   true  false   branch
+----- --- ------ ------ ------   ------
+19    ***     50      0      4   if ($y and $z) { }
+27           100      2      2   if ($y or $z) { }
+36    ***     50      0      4   if $y
+37    ***     50      0      4   if $y
+39           100      2      2   if $z
+40           100      2      2   if $z
+42    ***     50      4      0   unless $y
+43    ***     50      4      0   unless $y
+45           100      2      2   unless $z
+46           100      2      2   unless $z
+48    ***     50      0      4   $y ? :
+49           100      2      2   $z ? :
+51    ***     50      0      4   if ($y) { }
+      ***     50      0      4   elsif ($y and $z) { }
+             100      2      2   elsif ($y or $z) { }
+68    ***     50      0      4   if $y and $z
+      ***     50      0      4   if $y and $z
+74           100      1      1   unless $y
+80           100      1      1   unless $y
+86           100      1      1   if $y
+92           100      1      1   if $y
+112   ***     50      1      0   unless $y
+118          100      1      1   unless $y
+124          100      1      1   if $y
+130   ***     50      1      0   if $y
+150   ***     50      1      0   unless $y
+157          100      1      1   unless $y
+164          100      1      1   if $y
+171   ***     50      1      0   if $y
+198          100      1      2   if $z > 1
+199          100      1      1   unless $z
+207          100      1      2   if $z > 1
+208          100      1      1   if $z
+216          100      1      2   if $z > 1
+217          100      1      1   if $z
+225          100      1      2   if $z > 1
+226          100      1      1   unless $z
+234          100      1      2   if $z > 1
+244          100      1      2   if $z > 1
+253          100      2      2   unless shift @_
+269          100      2      2   if shift @_
+302   ***     50      0      1   if ($a and $b) { }
+      ***     50      0      1   elsif (not $a || $b) { }
+      ***     50      1      0   elsif ($b or 0) { }
+313   ***     50      0      1   if (not $b or $a) { }
+      ***     50      1      0   elsif (not $a and $b) { }
+
+
+Conditions
+----------
+
+and 3 conditions
+
+line  err      %     !l  l&&!r   l&&r   expr
+----- --- ------ ------ ------ ------   ----
+19    ***     33      4      0      0   $y and $z
+51    ***     33      4      0      0   $y and $z
+68    ***     33      4      0      0   $y and $z
+      ***     33      4      0      0   $y and $z
+302   ***     33      1      0      0   $a and $b
+313   ***     33      0      0      1   not $a and $b
+
+or 2 conditions
+
+line  err      %      l     !l   expr
+----- --- ------ ------ ------   ----
+302   ***     50      1      0   $b or 0
+
+or 3 conditions
+
+line  err      %      l  !l&&r !l&&!r   expr
+----- --- ------ ------ ------ ------   ----
+27    ***     66      0      2      2   $y or $z
+51    ***     66      0      2      2   $y or $z
+302   ***     33      0      1      0   $a || $b
+313   ***     33      0      0      1   not $b or $a
+
+xor 4 conditions
+
+line  err      %   l&&r  l&&!r  !l&&r !l&&!r   expr
+----- --- ------ ------ ------ ------ ------   ----
+99    ***      0      0      0      0      0   my $w = $y xor next
+106   ***      0      0      0      0      0   my $w = $y xor next
+137   ***      0      0      0      0      0   my $w = $y xor last
+144   ***      0      0      0      0      0   my $w = $y xor last
+179   ***      0      0      0      0      0   my $w = $y xor goto G5
+187   ***      0      0      0      0      0   my $w = $y xor goto G6
+236   ***      0      0      0      0      0   my $w = $z xor redo
+246   ***      0      0      0      0      0   my $w = !$z xor redo
+286   ***      0      0      0      0      0   shift @_ xor return
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location             
+---------- ----- ---------------------
+BEGIN          1 tests/cond_branch:10 
+BEGIN          1 tests/cond_branch:105
+BEGIN          1 tests/cond_branch:11 
+BEGIN          1 tests/cond_branch:136
+BEGIN          1 tests/cond_branch:143
+BEGIN          1 tests/cond_branch:178
+BEGIN          1 tests/cond_branch:186
+BEGIN          1 tests/cond_branch:235
+BEGIN          1 tests/cond_branch:245
+BEGIN          1 tests/cond_branch:285
+BEGIN          1 tests/cond_branch:98 
+__ANON__       4 tests/cond_branch:253
+__ANON__       4 tests/cond_branch:269
+__ANON__       4 tests/cond_branch:286
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,94 +20,97 @@ tests/cond_or
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10                                      use strict;
-11                                      use warnings;
+10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
 12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19    ***      1     50                 if ($] >= 5.009)
-20                                      {
-21    ***      0                            $ENV{PATH} = "/bin";
-22    ***      0                            system "pwd";
-23                                          use lib "tests";
-24    ***      0                            my $file = "cond_or.pl";
-25    ***      0      0                     unless (my $return = do $file)
-26                                          {
-27    ***      0      0                         die "couldn't parse $file: $@" if $@;
-28    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
-29    ***      0      0                         die "couldn't run $file"       unless $return;
-30                                          }
-31                                      }
-32                                      
-33             1                        for (0 .. 10)
+13                                      use strict;
+14                                      use warnings;
+15                                      
+16             1                        my @x;
+17                                      
+18             1                        my $y  = 1;
+19             1                        my $z  = 0;
+20             1                        $::foo = 17;
+21                                      
+22    ***      1     50                 if ($] >= 5.009)
+23                                      {
+24    ***      0                            $ENV{PATH} = "/bin";
+25    ***      0                            system "pwd";
+26                                          use lib "tests";
+27    ***      0                            my $file = "cond_or.pl";
+28    ***      0      0                     unless (my $return = do $file)
+29                                          {
+30    ***      0      0                         die "couldn't parse $file: $@" if $@;
+31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
+32    ***      0      0                         die "couldn't run $file"       unless $return;
+33                                          }
+34                                      }
+35                                      
+36             1                        for (0 .. 10)
               11                        
-34                                      {
-35    ***     11     50                     $y ||
-36                                              $x[1]++;
-37                                      
-38    ***     11     50     33              $y ||
-39                                              $x[0]++ ||
-40                                              $x[1]++;
-41                                      
-42    ***     11     50                     $x[2]++
-43                                              unless $z;
+37                                      {
+38    ***     11     50                     $y ||
+39                                              $x[1]++;
+40                                      
+41    ***     11     50     33              $y ||
+42                                              $x[0]++ ||
+43                                              $x[1]++;
 44                                      
-45            11                            for (0 .. 2)
+45    ***     11     50                     $x[2]++
+46                                              unless $z;
+47                                      
+48            11                            for (0 .. 2)
               33                        
-46                                          {
-47            33                                $x[3]++;
-48                                          }
-49                                      
-50    ***     11     50                     if ($z)
-51                                          {
-52    ***      0                                $x[4]++;
-53                                          }
-54                                          else
-55                                          {
-56            11                                $x[5]++;
-57                                          }
-58                                      
-59    ***     11            33              my $p = $y || $z;
-60    ***     11            33              my $q = $z || $y;
-61            11           100              my $r = $_ || "qqq";
-62            11           100              my $s = $_ || [];
-63            11                            my $t = $y | $z;
-64    ***     11            50              my $u = $y || 0;
-65    ***     11            50              my $v = $y || undef;
-66    ***     11            50              my $w = $z || 0;
-67                                      
-68    ***     11            50              $p     ||= $y;
-69    ***     11            50              $p     ||= $z;
-70            11           100              $x[ 6] ||= $y;
-71    ***     11            50              $x[ 7] ||= $z;
-72            11           100              $x[ 8] ||= 1;
-73            11           100              $x[ 9] ||= {};
-74            11           100              $x[10] ||= \"foo";
-75            11           100              $x[11] ||= \$y;
-76            11           100              $x[12] ||= \*STDIO;
-77    ***     11           100      0       $x[13] ||= sub { 1 };
+49                                          {
+50            33                                $x[3]++;
+51                                          }
+52                                      
+53    ***     11     50                     if ($z)
+54                                          {
+55    ***      0                                $x[4]++;
+56                                          }
+57                                          else
+58                                          {
+59            11                                $x[5]++;
+60                                          }
+61                                      
+62    ***     11            33              my $p = $y || $z;
+63    ***     11            33              my $q = $z || $y;
+64            11           100              my $r = $_ || "qqq";
+65            11           100              my $s = $_ || [];
+66            11                            my $t = $y | $z;
+67    ***     11            50              my $u = $y || 0;
+68    ***     11            50              my $v = $y || undef;
+69    ***     11            50              my $w = $z || 0;
+70                                      
+71    ***     11            50              $p     ||= $y;
+72    ***     11            50              $p     ||= $z;
+73            11           100              $x[ 6] ||= $y;
+74    ***     11            50              $x[ 7] ||= $z;
+75            11           100              $x[ 8] ||= 1;
+76            11           100              $x[ 9] ||= {};
+77            11           100              $x[10] ||= \"foo";
+78            11           100              $x[11] ||= \$y;
+79            11           100              $x[12] ||= \*STDIO;
+80    ***     11           100      0       $x[13] ||= sub { 1 };
       ***      0                        
-78            11           100              $x[14] ||= *::foo{SCALAR};
-79    ***     11            50              $x[15] ||= *STDIO{IO};
-80            11           100              $x[16] ||= bless {}, "XXX";
-81            11           100              $x[17] ||= <<"EOD";
-82                                      blah
-83                                      EOD
-84    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
-85                                      }
-86                                      
-87                                      # print join(", ", @x), "\n";
+81            11           100              $x[14] ||= *::foo{SCALAR};
+82    ***     11            50              $x[15] ||= *STDIO{IO};
+83            11           100              $x[16] ||= bless {}, "XXX";
+84            11           100              $x[17] ||= <<"EOD";
+85                                      blah
+86                                      EOD
+87    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
+88                                      }
+89                                      
+90                                      # print join(", ", @x), "\n";
 
 
 Branches
@@ -115,16 +118,16 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-19    ***     50      0      1   if ($] >= 5.009)
-25    ***      0      0      0   unless (my $return = do $file)
-27    ***      0      0      0   if $@
-28    ***      0      0      0   unless defined $return
-29    ***      0      0      0   unless $return
-35    ***     50      0     11   unless $y
-38    ***     50      0     11   unless $y or $x[0]++
-42    ***     50     11      0   unless $z
-50    ***     50      0     11   if ($z) { }
-84    ***     50      0     11   if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl-5.6.1/lib/5.6.1/i686-linux/B/Deparse.pm line 409.
+22    ***     50      0      1   if ($] >= 5.009)
+28    ***      0      0      0   unless (my $return = do $file)
+30    ***      0      0      0   if $@
+31    ***      0      0      0   unless defined $return
+32    ***      0      0      0   unless $return
+38    ***     50      0     11   unless $y
+41    ***     50      0     11   unless $y or $x[0]++
+45    ***     50     11      0   unless $z
+53    ***     50      0     11   if ($z) { }
+87    ***     50      0     11   if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl/default/perl-5.6.1/lib/5.6.1/i686-linux/B/Deparse.pm line 409.
 }
 
 
@@ -135,36 +138,36 @@ or 2 conditions
 
 line  err      %      l     !l   expr
 ----- --- ------ ------ ------   ----
-61           100     10      1   $_ || 'qqq'
-62           100     10      1   $_ || []
-64    ***     50     11      0   $y || 0
-65    ***     50     11      0   $y || undef
-66    ***     50      0     11   $z || 0
-68    ***     50     11      0   $p ||= $y
-69    ***     50     11      0   $p ||= $z
-70           100     10      1   $x[6] ||= $y
-71    ***     50      0     11   $x[7] ||= $z
-72           100     10      1   $x[8] ||= 1
-73           100     10      1   $x[9] ||= {}
-74           100     10      1   $x[10] ||= \('foo')
-75           100     10      1   $x[11] ||= \$y
-76           100     10      1   $x[12] ||= \*STDIO
-77           100     10      1   $x[13] ||= sub {
+64           100     10      1   $_ || 'qqq'
+65           100     10      1   $_ || []
+67    ***     50     11      0   $y || 0
+68    ***     50     11      0   $y || undef
+69    ***     50      0     11   $z || 0
+71    ***     50     11      0   $p ||= $y
+72    ***     50     11      0   $p ||= $z
+73           100     10      1   $x[6] ||= $y
+74    ***     50      0     11   $x[7] ||= $z
+75           100     10      1   $x[8] ||= 1
+76           100     10      1   $x[9] ||= {}
+77           100     10      1   $x[10] ||= \('foo')
+78           100     10      1   $x[11] ||= \$y
+79           100     10      1   $x[12] ||= \*STDIO
+80           100     10      1   $x[13] ||= sub {
 	1;
 }
 
-78           100     10      1   $x[14] ||= *foo{'SCALAR'}
-79    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-80           100     10      1   $x[16] ||= bless({}, 'XXX')
-81           100     10      1   $x[17] ||= "blah\n"
+81           100     10      1   $x[14] ||= *foo{'SCALAR'}
+82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
+83           100     10      1   $x[16] ||= bless({}, 'XXX')
+84           100     10      1   $x[17] ||= "blah\n"
 
 or 3 conditions
 
 line  err      %      l  !l&&r !l&&!r   expr
 ----- --- ------ ------ ------ ------   ----
-38    ***     33     11      0      0   $y or $x[0]++
-59    ***     33     11      0      0   $y || $z
-60    ***     33      0     11      0   $z || $y
+41    ***     33     11      0      0   $y or $x[0]++
+62    ***     33     11      0      0   $y || $z
+63    ***     33      0     11      0   $z || $y
 
 
 Uncovered Subroutines
@@ -172,6 +175,6 @@ Uncovered Subroutines
 
 Subroutine Count Location        
 ---------- ----- ----------------
-__ANON__       0 tests/cond_or:77
+__ANON__       0 tests/cond_or:80
 
 
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,94 +20,97 @@ tests/cond_or
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10                                      use strict;
-11                                      use warnings;
+10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
 12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19    ***      1     50                 if ($] >= 5.009)
-20                                      {
-21    ***      0                            $ENV{PATH} = "/bin";
-22    ***      0                            system "pwd";
-23                                          use lib "tests";
-24    ***      0                            my $file = "cond_or.pl";
-25    ***      0      0                     unless (my $return = do $file)
-26                                          {
-27    ***      0      0                         die "couldn't parse $file: $@" if $@;
-28    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
-29    ***      0      0                         die "couldn't run $file"       unless $return;
-30                                          }
-31                                      }
-32                                      
-33             1                        for (0 .. 10)
+13                                      use strict;
+14                                      use warnings;
+15                                      
+16             1                        my @x;
+17                                      
+18             1                        my $y  = 1;
+19             1                        my $z  = 0;
+20             1                        $::foo = 17;
+21                                      
+22    ***      1     50                 if ($] >= 5.009)
+23                                      {
+24    ***      0                            $ENV{PATH} = "/bin";
+25    ***      0                            system "pwd";
+26                                          use lib "tests";
+27    ***      0                            my $file = "cond_or.pl";
+28    ***      0      0                     unless (my $return = do $file)
+29                                          {
+30    ***      0      0                         die "couldn't parse $file: $@" if $@;
+31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
+32    ***      0      0                         die "couldn't run $file"       unless $return;
+33                                          }
+34                                      }
+35                                      
+36             1                        for (0 .. 10)
               11                        
-34                                      {
-35    ***     11     50                     $y ||
-36                                              $x[1]++;
-37                                      
-38    ***     11     50     33              $y ||
-39                                              $x[0]++ ||
-40                                              $x[1]++;
-41                                      
-42    ***     11     50                     $x[2]++
-43                                              unless $z;
+37                                      {
+38    ***     11     50                     $y ||
+39                                              $x[1]++;
+40                                      
+41    ***     11     50     33              $y ||
+42                                              $x[0]++ ||
+43                                              $x[1]++;
 44                                      
-45            11                            for (0 .. 2)
+45    ***     11     50                     $x[2]++
+46                                              unless $z;
+47                                      
+48            11                            for (0 .. 2)
               33                        
-46                                          {
-47            33                                $x[3]++;
-48                                          }
-49                                      
-50    ***     11     50                     if ($z)
-51                                          {
-52    ***      0                                $x[4]++;
-53                                          }
-54                                          else
-55                                          {
-56            11                                $x[5]++;
-57                                          }
-58                                      
-59    ***     11            33              my $p = $y || $z;
-60    ***     11            33              my $q = $z || $y;
-61            11           100              my $r = $_ || "qqq";
-62            11           100              my $s = $_ || [];
-63            11                            my $t = $y | $z;
-64    ***     11            50              my $u = $y || 0;
-65    ***     11            50              my $v = $y || undef;
-66    ***     11            50              my $w = $z || 0;
-67                                      
-68    ***     11            50              $p     ||= $y;
-69    ***     11            50              $p     ||= $z;
-70            11           100              $x[ 6] ||= $y;
-71    ***     11            50              $x[ 7] ||= $z;
-72            11           100              $x[ 8] ||= 1;
-73            11           100              $x[ 9] ||= {};
-74            11           100              $x[10] ||= \"foo";
-75            11           100              $x[11] ||= \$y;
-76            11           100              $x[12] ||= \*STDIO;
-77    ***     11           100      0       $x[13] ||= sub { 1 };
+49                                          {
+50            33                                $x[3]++;
+51                                          }
+52                                      
+53    ***     11     50                     if ($z)
+54                                          {
+55    ***      0                                $x[4]++;
+56                                          }
+57                                          else
+58                                          {
+59            11                                $x[5]++;
+60                                          }
+61                                      
+62    ***     11            33              my $p = $y || $z;
+63    ***     11            33              my $q = $z || $y;
+64            11           100              my $r = $_ || "qqq";
+65            11           100              my $s = $_ || [];
+66            11                            my $t = $y | $z;
+67    ***     11            50              my $u = $y || 0;
+68    ***     11            50              my $v = $y || undef;
+69    ***     11            50              my $w = $z || 0;
+70                                      
+71    ***     11            50              $p     ||= $y;
+72    ***     11            50              $p     ||= $z;
+73            11           100              $x[ 6] ||= $y;
+74    ***     11            50              $x[ 7] ||= $z;
+75            11           100              $x[ 8] ||= 1;
+76            11           100              $x[ 9] ||= {};
+77            11           100              $x[10] ||= \"foo";
+78            11           100              $x[11] ||= \$y;
+79            11           100              $x[12] ||= \*STDIO;
+80    ***     11           100      0       $x[13] ||= sub { 1 };
       ***      0                        
-78            11           100              $x[14] ||= *::foo{SCALAR};
-79    ***     11            50              $x[15] ||= *STDIO{IO};
-80            11           100              $x[16] ||= bless {}, "XXX";
-81            11           100              $x[17] ||= <<"EOD";
-82                                      blah
-83                                      EOD
-84    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
-85                                      }
-86                                      
-87                                      # print join(", ", @x), "\n";
+81            11           100              $x[14] ||= *::foo{SCALAR};
+82    ***     11            50              $x[15] ||= *STDIO{IO};
+83            11           100              $x[16] ||= bless {}, "XXX";
+84            11           100              $x[17] ||= <<"EOD";
+85                                      blah
+86                                      EOD
+87    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
+88                                      }
+89                                      
+90                                      # print join(", ", @x), "\n";
 
 
 Branches
@@ -115,16 +118,16 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-19    ***     50      0      1   if ($] >= 5.009)
-25    ***      0      0      0   unless (my $return = do $file)
-27    ***      0      0      0   if $@
-28    ***      0      0      0   unless defined $return
-29    ***      0      0      0   unless $return
-35    ***     50      0     11   unless $y
-38    ***     50      0     11   unless $y or $x[0]++
-42    ***     50     11      0   unless $z
-50    ***     50      0     11   if ($z) { }
-84    ***     50      0     11   if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl-5.6.2/lib/5.6.2/i686-linux/B/Deparse.pm line 409.
+22    ***     50      0      1   if ($] >= 5.009)
+28    ***      0      0      0   unless (my $return = do $file)
+30    ***      0      0      0   if $@
+31    ***      0      0      0   unless defined $return
+32    ***      0      0      0   unless $return
+38    ***     50      0     11   unless $y
+41    ***     50      0     11   unless $y or $x[0]++
+45    ***     50     11      0   unless $z
+53    ***     50      0     11   if ($z) { }
+87    ***     50      0     11   if exists ->{Deparse error: Can't locate object method "name" via package "B::NULL" (perhaps you forgot to load "B::NULL"?) at /usr/local/pkg/perl/default/perl-5.6.2/lib/5.6.2/i686-linux/B/Deparse.pm line 409.
 }
 
 
@@ -135,36 +138,36 @@ or 2 conditions
 
 line  err      %      l     !l   expr
 ----- --- ------ ------ ------   ----
-61           100     10      1   $_ || 'qqq'
-62           100     10      1   $_ || []
-64    ***     50     11      0   $y || 0
-65    ***     50     11      0   $y || undef
-66    ***     50      0     11   $z || 0
-68    ***     50     11      0   $p ||= $y
-69    ***     50     11      0   $p ||= $z
-70           100     10      1   $x[6] ||= $y
-71    ***     50      0     11   $x[7] ||= $z
-72           100     10      1   $x[8] ||= 1
-73           100     10      1   $x[9] ||= {}
-74           100     10      1   $x[10] ||= \('foo')
-75           100     10      1   $x[11] ||= \$y
-76           100     10      1   $x[12] ||= \*STDIO
-77           100     10      1   $x[13] ||= sub {
+64           100     10      1   $_ || 'qqq'
+65           100     10      1   $_ || []
+67    ***     50     11      0   $y || 0
+68    ***     50     11      0   $y || undef
+69    ***     50      0     11   $z || 0
+71    ***     50     11      0   $p ||= $y
+72    ***     50     11      0   $p ||= $z
+73           100     10      1   $x[6] ||= $y
+74    ***     50      0     11   $x[7] ||= $z
+75           100     10      1   $x[8] ||= 1
+76           100     10      1   $x[9] ||= {}
+77           100     10      1   $x[10] ||= \('foo')
+78           100     10      1   $x[11] ||= \$y
+79           100     10      1   $x[12] ||= \*STDIO
+80           100     10      1   $x[13] ||= sub {
 	1;
 }
 
-78           100     10      1   $x[14] ||= *foo{'SCALAR'}
-79    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-80           100     10      1   $x[16] ||= bless({}, 'XXX')
-81           100     10      1   $x[17] ||= "blah\n"
+81           100     10      1   $x[14] ||= *foo{'SCALAR'}
+82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
+83           100     10      1   $x[16] ||= bless({}, 'XXX')
+84           100     10      1   $x[17] ||= "blah\n"
 
 or 3 conditions
 
 line  err      %      l  !l&&r !l&&!r   expr
 ----- --- ------ ------ ------ ------   ----
-38    ***     33     11      0      0   $y or $x[0]++
-59    ***     33     11      0      0   $y || $z
-60    ***     33      0     11      0   $z || $y
+41    ***     33     11      0      0   $y or $x[0]++
+62    ***     33     11      0      0   $y || $z
+63    ***     33      0     11      0   $z || $y
 
 
 Uncovered Subroutines
@@ -172,6 +175,6 @@ Uncovered Subroutines
 
 Subroutine Count Location        
 ---------- ----- ----------------
-__ANON__       0 tests/cond_or:77
+__ANON__       0 tests/cond_or:80
 
 
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,100 +20,103 @@ tests/cond_or
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10             1                    1   use strict;
+10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
+12                                      
+13             1                    1   use strict;
                1                        
                1                        
-11             1                    1   use warnings;
+14             1                    1   use warnings;
                1                        
                1                        
-12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19    ***      1     50                 if ($] >= 5.009)
-20                                      {
-21    ***      0                            $ENV{PATH} = "/bin";
-22    ***      0                            system "pwd";
-23             1                    1       use lib "tests";
+15                                      
+16             1                        my @x;
+17                                      
+18             1                        my $y  = 1;
+19             1                        my $z  = 0;
+20             1                        $::foo = 17;
+21                                      
+22    ***      1     50                 if ($] >= 5.009)
+23                                      {
+24    ***      0                            $ENV{PATH} = "/bin";
+25    ***      0                            system "pwd";
+26             1                    1       use lib "tests";
                1                        
                1                        
-24    ***      0                            my $file = "cond_or.pl";
-25    ***      0      0                     unless (my $return = do $file)
-26                                          {
-27    ***      0      0                         die "couldn't parse $file: $@" if $@;
-28    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
-29    ***      0      0                         die "couldn't run $file"       unless $return;
-30                                          }
-31                                      }
-32                                      
-33             1                        for (0 .. 10)
+27    ***      0                            my $file = "cond_or.pl";
+28    ***      0      0                     unless (my $return = do $file)
+29                                          {
+30    ***      0      0                         die "couldn't parse $file: $@" if $@;
+31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
+32    ***      0      0                         die "couldn't run $file"       unless $return;
+33                                          }
+34                                      }
+35                                      
+36             1                        for (0 .. 10)
               11                        
-34                                      {
-35    ***     11     50                     $y ||
-36                                              $x[1]++;
-37                                      
-38    ***     11     50     33              $y ||
-39                                              $x[0]++ ||
-40                                              $x[1]++;
-41                                      
-42    ***     11     50                     $x[2]++
-43                                              unless $z;
+37                                      {
+38    ***     11     50                     $y ||
+39                                              $x[1]++;
+40                                      
+41    ***     11     50     33              $y ||
+42                                              $x[0]++ ||
+43                                              $x[1]++;
 44                                      
-45            11                            for (0 .. 2)
+45    ***     11     50                     $x[2]++
+46                                              unless $z;
+47                                      
+48            11                            for (0 .. 2)
               33                        
-46                                          {
-47            33                                $x[3]++;
-48                                          }
-49                                      
-50    ***     11     50                     if ($z)
-51                                          {
-52    ***      0                                $x[4]++;
-53                                          }
-54                                          else
-55                                          {
-56            11                                $x[5]++;
-57                                          }
-58                                      
-59    ***     11            33              my $p = $y || $z;
-60    ***     11            33              my $q = $z || $y;
-61            11           100              my $r = $_ || "qqq";
-62            11           100              my $s = $_ || [];
-63            11                            my $t = $y | $z;
-64    ***     11            50              my $u = $y || 0;
-65    ***     11            50              my $v = $y || undef;
-66    ***     11            50              my $w = $z || 0;
-67                                      
-68    ***     11            50              $p     ||= $y;
-69    ***     11            50              $p     ||= $z;
-70            11           100              $x[ 6] ||= $y;
-71    ***     11            50              $x[ 7] ||= $z;
-72            11           100              $x[ 8] ||= 1;
-73            11           100              $x[ 9] ||= {};
-74            11           100              $x[10] ||= \"foo";
-75            11           100              $x[11] ||= \$y;
-76            11           100              $x[12] ||= \*STDIO;
-77    ***     11           100      0       $x[13] ||= sub { 1 };
+49                                          {
+50            33                                $x[3]++;
+51                                          }
+52                                      
+53    ***     11     50                     if ($z)
+54                                          {
+55    ***      0                                $x[4]++;
+56                                          }
+57                                          else
+58                                          {
+59            11                                $x[5]++;
+60                                          }
+61                                      
+62    ***     11            33              my $p = $y || $z;
+63    ***     11            33              my $q = $z || $y;
+64            11           100              my $r = $_ || "qqq";
+65            11           100              my $s = $_ || [];
+66            11                            my $t = $y | $z;
+67    ***     11            50              my $u = $y || 0;
+68    ***     11            50              my $v = $y || undef;
+69    ***     11            50              my $w = $z || 0;
+70                                      
+71    ***     11            50              $p     ||= $y;
+72    ***     11            50              $p     ||= $z;
+73            11           100              $x[ 6] ||= $y;
+74    ***     11            50              $x[ 7] ||= $z;
+75            11           100              $x[ 8] ||= 1;
+76            11           100              $x[ 9] ||= {};
+77            11           100              $x[10] ||= \"foo";
+78            11           100              $x[11] ||= \$y;
+79            11           100              $x[12] ||= \*STDIO;
+80    ***     11           100      0       $x[13] ||= sub { 1 };
       ***      0                        
-78            11           100              $x[14] ||= *::foo{SCALAR};
-79    ***     11            50              $x[15] ||= *STDIO{IO};
-80            11           100              $x[16] ||= bless {}, "XXX";
-81            11           100              $x[17] ||= <<"EOD";
-82                                      blah
-83                                      EOD
-84    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
-85                                      }
-86                                      
-87                                      # print join(", ", @x), "\n";
+81            11           100              $x[14] ||= *::foo{SCALAR};
+82    ***     11            50              $x[15] ||= *STDIO{IO};
+83            11           100              $x[16] ||= bless {}, "XXX";
+84            11           100              $x[17] ||= <<"EOD";
+85                                      blah
+86                                      EOD
+87    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
+88                                      }
+89                                      
+90                                      # print join(", ", @x), "\n";
 
 
 Branches
@@ -121,16 +124,16 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-19    ***     50      0      1   if ($] >= 5.009)
-25    ***      0      0      0   unless (my $return = do $file)
-27    ***      0      0      0   if $@
-28    ***      0      0      0   unless defined $return
-29    ***      0      0      0   unless $return
-35    ***     50      0     11   unless $y
-38    ***     50      0     11   unless $y or $x[0]++
-42    ***     50     11      0   unless $z
-50    ***     50      0     11   if ($z) { }
-84    ***     50      0     11   if exists &cond_dor
+22    ***     50      0      1   if ($] >= 5.009)
+28    ***      0      0      0   unless (my $return = do $file)
+30    ***      0      0      0   if $@
+31    ***      0      0      0   unless defined $return
+32    ***      0      0      0   unless $return
+38    ***     50      0     11   unless $y
+41    ***     50      0     11   unless $y or $x[0]++
+45    ***     50     11      0   unless $z
+53    ***     50      0     11   if ($z) { }
+87    ***     50      0     11   if exists &cond_dor
 
 
 Conditions
@@ -140,36 +143,36 @@ or 2 conditions
 
 line  err      %      l     !l   expr
 ----- --- ------ ------ ------   ----
-61           100     10      1   $_ || 'qqq'
-62           100     10      1   $_ || []
-64    ***     50     11      0   $y || 0
-65    ***     50     11      0   $y || undef
-66    ***     50      0     11   $z || 0
-68    ***     50     11      0   $p ||= $y
-69    ***     50     11      0   $p ||= $z
-70           100     10      1   $x[6] ||= $y
-71    ***     50      0     11   $x[7] ||= $z
-72           100     10      1   $x[8] ||= 1
-73           100     10      1   $x[9] ||= {}
-74           100     10      1   $x[10] ||= \('foo')
-75           100     10      1   $x[11] ||= \$y
-76           100     10      1   $x[12] ||= \*STDIO
-77           100     10      1   $x[13] ||= sub {
+64           100     10      1   $_ || 'qqq'
+65           100     10      1   $_ || []
+67    ***     50     11      0   $y || 0
+68    ***     50     11      0   $y || undef
+69    ***     50      0     11   $z || 0
+71    ***     50     11      0   $p ||= $y
+72    ***     50     11      0   $p ||= $z
+73           100     10      1   $x[6] ||= $y
+74    ***     50      0     11   $x[7] ||= $z
+75           100     10      1   $x[8] ||= 1
+76           100     10      1   $x[9] ||= {}
+77           100     10      1   $x[10] ||= \('foo')
+78           100     10      1   $x[11] ||= \$y
+79           100     10      1   $x[12] ||= \*STDIO
+80           100     10      1   $x[13] ||= sub {
 	1;
 }
 
-78           100     10      1   $x[14] ||= *foo{'SCALAR'}
-79    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-80           100     10      1   $x[16] ||= bless({}, 'XXX')
-81           100     10      1   $x[17] ||= "blah\n"
+81           100     10      1   $x[14] ||= *foo{'SCALAR'}
+82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
+83           100     10      1   $x[16] ||= bless({}, 'XXX')
+84           100     10      1   $x[17] ||= "blah\n"
 
 or 3 conditions
 
 line  err      %      l  !l&&r !l&&!r   expr
 ----- --- ------ ------ ------ ------   ----
-38    ***     33     11      0      0   $y or $x[0]++
-59    ***     33     11      0      0   $y || $z
-60    ***     33      0     11      0   $z || $y
+41    ***     33     11      0      0   $y or $x[0]++
+62    ***     33     11      0      0   $y || $z
+63    ***     33      0     11      0   $z || $y
 
 
 Covered Subroutines
@@ -177,15 +180,15 @@ Covered Subroutines
 
 Subroutine Count Location        
 ---------- ----- ----------------
-BEGIN          1 tests/cond_or:10
-BEGIN          1 tests/cond_or:11
-BEGIN          1 tests/cond_or:23
+BEGIN          1 tests/cond_or:13
+BEGIN          1 tests/cond_or:14
+BEGIN          1 tests/cond_or:26
 
 Uncovered Subroutines
 ---------------------
 
 Subroutine Count Location        
 ---------- ----- ----------------
-__ANON__       0 tests/cond_or:77
+__ANON__       0 tests/cond_or:80
 
 
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,98 +20,101 @@ tests/cond_or
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10             1                    1   use strict;
+10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
+12                                      
+13             1                    1   use strict;
                1                        
                1                        
-11             1                    1   use warnings;
+14             1                    1   use warnings;
                1                        
                1                        
-12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19    ***      1     50                 if ($] >= 5.009)
-20                                      {
-21    ***      0                            $ENV{PATH} = "/bin";
-22    ***      0                            system "pwd";
-23             1                    1       use lib "tests";
+15                                      
+16             1                        my @x;
+17                                      
+18             1                        my $y  = 1;
+19             1                        my $z  = 0;
+20             1                        $::foo = 17;
+21                                      
+22    ***      1     50                 if ($] >= 5.009)
+23                                      {
+24    ***      0                            $ENV{PATH} = "/bin";
+25    ***      0                            system "pwd";
+26             1                    1       use lib "tests";
                1                        
                1                        
-24    ***      0                            my $file = "cond_or.pl";
-25    ***      0      0                     unless (my $return = do $file)
-26                                          {
-27    ***      0      0                         die "couldn't parse $file: $@" if $@;
-28    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
-29    ***      0      0                         die "couldn't run $file"       unless $return;
-30                                          }
-31                                      }
-32                                      
-33             1                        for (0 .. 10)
-34                                      {
-35    ***     11     50                     $y ||
-36                                              $x[1]++;
-37                                      
-38    ***     11     50     33              $y ||
-39                                              $x[0]++ ||
-40                                              $x[1]++;
-41                                      
-42    ***     11     50                     $x[2]++
-43                                              unless $z;
+27    ***      0                            my $file = "cond_or.pl";
+28    ***      0      0                     unless (my $return = do $file)
+29                                          {
+30    ***      0      0                         die "couldn't parse $file: $@" if $@;
+31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
+32    ***      0      0                         die "couldn't run $file"       unless $return;
+33                                          }
+34                                      }
+35                                      
+36             1                        for (0 .. 10)
+37                                      {
+38    ***     11     50                     $y ||
+39                                              $x[1]++;
+40                                      
+41    ***     11     50     33              $y ||
+42                                              $x[0]++ ||
+43                                              $x[1]++;
 44                                      
-45            11                            for (0 .. 2)
-46                                          {
-47            33                                $x[3]++;
-48                                          }
-49                                      
-50    ***     11     50                     if ($z)
-51                                          {
-52    ***      0                                $x[4]++;
-53                                          }
-54                                          else
-55                                          {
-56            11                                $x[5]++;
-57                                          }
-58                                      
-59    ***     11            33              my $p = $y || $z;
-60    ***     11            33              my $q = $z || $y;
-61            11           100              my $r = $_ || "qqq";
-62            11           100              my $s = $_ || [];
-63            11                            my $t = $y | $z;
-64    ***     11            50              my $u = $y || 0;
-65    ***     11            50              my $v = $y || undef;
-66    ***     11            50              my $w = $z || 0;
-67                                      
-68    ***     11            50              $p     ||= $y;
-69    ***     11            50              $p     ||= $z;
-70            11           100              $x[ 6] ||= $y;
-71    ***     11            50              $x[ 7] ||= $z;
-72            11           100              $x[ 8] ||= 1;
-73            11           100              $x[ 9] ||= {};
-74            11           100              $x[10] ||= \"foo";
-75            11           100              $x[11] ||= \$y;
-76            11           100              $x[12] ||= \*STDIO;
-77    ***     11           100      0       $x[13] ||= sub { 1 };
+45    ***     11     50                     $x[2]++
+46                                              unless $z;
+47                                      
+48            11                            for (0 .. 2)
+49                                          {
+50            33                                $x[3]++;
+51                                          }
+52                                      
+53    ***     11     50                     if ($z)
+54                                          {
+55    ***      0                                $x[4]++;
+56                                          }
+57                                          else
+58                                          {
+59            11                                $x[5]++;
+60                                          }
+61                                      
+62    ***     11            33              my $p = $y || $z;
+63    ***     11            33              my $q = $z || $y;
+64            11           100              my $r = $_ || "qqq";
+65            11           100              my $s = $_ || [];
+66            11                            my $t = $y | $z;
+67    ***     11            50              my $u = $y || 0;
+68    ***     11            50              my $v = $y || undef;
+69    ***     11            50              my $w = $z || 0;
+70                                      
+71    ***     11            50              $p     ||= $y;
+72    ***     11            50              $p     ||= $z;
+73            11           100              $x[ 6] ||= $y;
+74    ***     11            50              $x[ 7] ||= $z;
+75            11           100              $x[ 8] ||= 1;
+76            11           100              $x[ 9] ||= {};
+77            11           100              $x[10] ||= \"foo";
+78            11           100              $x[11] ||= \$y;
+79            11           100              $x[12] ||= \*STDIO;
+80    ***     11           100      0       $x[13] ||= sub { 1 };
       ***      0                        
-78            11           100              $x[14] ||= *::foo{SCALAR};
-79    ***     11            50              $x[15] ||= *STDIO{IO};
-80            11           100              $x[16] ||= bless {}, "XXX";
-81            11           100              $x[17] ||= <<"EOD";
-82                                      blah
-83                                      EOD
-84    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
-85                                      }
-86                                      
-87                                      # print join(", ", @x), "\n";
+81            11           100              $x[14] ||= *::foo{SCALAR};
+82    ***     11            50              $x[15] ||= *STDIO{IO};
+83            11           100              $x[16] ||= bless {}, "XXX";
+84            11           100              $x[17] ||= <<"EOD";
+85                                      blah
+86                                      EOD
+87    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
+88                                      }
+89                                      
+90                                      # print join(", ", @x), "\n";
 
 
 Branches
@@ -119,16 +122,16 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-19    ***     50      0      1   if ($] >= 5.009)
-25    ***      0      0      0   unless (my $return = do $file)
-27    ***      0      0      0   if $@
-28    ***      0      0      0   unless defined $return
-29    ***      0      0      0   unless $return
-35    ***     50      0     11   unless $y
-38    ***     50      0     11   unless $y or $x[0]++
-42    ***     50     11      0   unless $z
-50    ***     50      0     11   if ($z) { }
-84    ***     50      0     11   if exists &cond_dor
+22    ***     50      0      1   if ($] >= 5.009)
+28    ***      0      0      0   unless (my $return = do $file)
+30    ***      0      0      0   if $@
+31    ***      0      0      0   unless defined $return
+32    ***      0      0      0   unless $return
+38    ***     50      0     11   unless $y
+41    ***     50      0     11   unless $y or $x[0]++
+45    ***     50     11      0   unless $z
+53    ***     50      0     11   if ($z) { }
+87    ***     50      0     11   if exists &cond_dor
 
 
 Conditions
@@ -138,36 +141,36 @@ or 2 conditions
 
 line  err      %      l     !l   expr
 ----- --- ------ ------ ------   ----
-61           100     10      1   $_ || 'qqq'
-62           100     10      1   $_ || []
-64    ***     50     11      0   $y || 0
-65    ***     50     11      0   $y || undef
-66    ***     50      0     11   $z || 0
-68    ***     50     11      0   $p ||= $y
-69    ***     50     11      0   $p ||= $z
-70           100     10      1   $x[6] ||= $y
-71    ***     50      0     11   $x[7] ||= $z
-72           100     10      1   $x[8] ||= 1
-73           100     10      1   $x[9] ||= {}
-74           100     10      1   $x[10] ||= \'foo'
-75           100     10      1   $x[11] ||= \$y
-76           100     10      1   $x[12] ||= \*STDIO
-77           100     10      1   $x[13] ||= sub {
+64           100     10      1   $_ || 'qqq'
+65           100     10      1   $_ || []
+67    ***     50     11      0   $y || 0
+68    ***     50     11      0   $y || undef
+69    ***     50      0     11   $z || 0
+71    ***     50     11      0   $p ||= $y
+72    ***     50     11      0   $p ||= $z
+73           100     10      1   $x[6] ||= $y
+74    ***     50      0     11   $x[7] ||= $z
+75           100     10      1   $x[8] ||= 1
+76           100     10      1   $x[9] ||= {}
+77           100     10      1   $x[10] ||= \'foo'
+78           100     10      1   $x[11] ||= \$y
+79           100     10      1   $x[12] ||= \*STDIO
+80           100     10      1   $x[13] ||= sub {
 	1;
 }
 
-78           100     10      1   $x[14] ||= *foo{'SCALAR'}
-79    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-80           100     10      1   $x[16] ||= bless({}, 'XXX')
-81           100     10      1   $x[17] ||= "blah\n"
+81           100     10      1   $x[14] ||= *foo{'SCALAR'}
+82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
+83           100     10      1   $x[16] ||= bless({}, 'XXX')
+84           100     10      1   $x[17] ||= "blah\n"
 
 or 3 conditions
 
 line  err      %      l  !l&&r !l&&!r   expr
 ----- --- ------ ------ ------ ------   ----
-38    ***     33     11      0      0   $y or $x[0]++
-59    ***     33     11      0      0   $y || $z
-60    ***     33      0     11      0   $z || $y
+41    ***     33     11      0      0   $y or $x[0]++
+62    ***     33     11      0      0   $y || $z
+63    ***     33      0     11      0   $z || $y
 
 
 Covered Subroutines
@@ -175,15 +178,15 @@ Covered Subroutines
 
 Subroutine Count Location        
 ---------- ----- ----------------
-BEGIN          1 tests/cond_or:10
-BEGIN          1 tests/cond_or:11
-BEGIN          1 tests/cond_or:23
+BEGIN          1 tests/cond_or:13
+BEGIN          1 tests/cond_or:14
+BEGIN          1 tests/cond_or:26
 
 Uncovered Subroutines
 ---------------------
 
 Subroutine Count Location        
 ---------- ----- ----------------
-__ANON__       0 tests/cond_or:77
+__ANON__       0 tests/cond_or:80
 
 
@@ -1,170 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File                                         stmt   bran   cond    sub  total
------------------------------------------- ------ ------ ------ ------ ------
-tests/cond_or                                95.5   50.0   72.3   66.7   79.8
-Total                                        95.5   50.0   72.3   66.7   79.8
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/cond_or
-
-line  err   stmt   bran   cond    sub   code
-1                                       #!/usr/bin/perl
-2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
-4                                       
-5                                       # This software is free.  It is licensed under the same terms as Perl itself.
-6                                       
-7                                       # The latest version of this software should be available from my homepage:
-8                                       # http://www.pjcj.net
-9                                       
-10             1                    1   use strict;
-               1                        
-               1                        
-11             1                    1   use warnings;
-               1                        
-               1                        
-12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19             1                        for (0 .. 10)
-20                                      {
-21    ***     11     50                   $y ||
-22                                          $x[1]++;
-23                                      
-24    ***     11     50     33            $y ||
-25                                          $x[0]++ ||
-26                                          $x[1]++;
-27                                      
-28    ***     11     50                   $x[2]++
-29                                          unless $z;
-30                                      
-31            11                          for (0 .. 2)
-32                                        {
-33            33                              $x[3]++;
-34                                        }
-35                                      
-36    ***     11     50                   if ($z)
-37                                        {
-38    ***      0                            $x[4]++;
-39                                        }
-40                                        else
-41                                        {
-42            11                            $x[5]++;
-43                                        }
-44                                      
-45    ***     11            33            my $p = $y || $z;
-46    ***     11            33            my $q = $z || $y;
-47            11           100            my $r = $_ || "qqq";
-48            11           100            my $s = $_ || [];
-49            11                          my $t = $y | $z;
-50    ***     11            50            my $u = $y || 0;
-51    ***     11            50            my $v = $y || undef;
-52    ***     11            50            my $w = $z || 0;
-53                                      
-54    ***     11            50            $p     ||= $y;
-55    ***     11            50            $p     ||= $z;
-56            11           100            $x[ 6] ||= $y;
-57    ***     11            50            $x[ 7] ||= $z;
-58            11           100            $x[ 8] ||= 1;
-59            11           100            $x[ 9] ||= {};
-60            11           100            $x[10] ||= \"foo";
-61            11           100            $x[11] ||= \$y;
-62            11           100            $x[12] ||= \*STDIO;
-63    ***     11           100      0     $x[13] ||= sub { 1 };
-      ***      0                        
-64            11           100            $x[14] ||= *::foo{SCALAR};
-65    ***     11            50            $x[15] ||= *STDIO{IO};
-66            11           100            $x[16] ||= bless {}, "XXX";
-67            11           100            $x[17] ||= <<"EOD";
-68                                      blah
-69                                      EOD
-70    ***     11     50                   if ($] >= 5.009)
-71                                        {
-72            11                              eval '$x[18] //= 0';
-73                                        }
-74                                      }
-75                                      
-76                                      # print join(", ", @x), "\n";
-
-
-Branches
---------
-
-line  err      %   true  false   branch
------ --- ------ ------ ------   ------
-21    ***     50      0     11   unless $y
-24    ***     50      0     11   unless $y or $x[0]++
-28    ***     50     11      0   unless $z
-36    ***     50      0     11   if ($z) { }
-70    ***     50     11      0   if ($] >= 5.009)
-
-
-Conditions
-----------
-
-or 2 conditions
-
-line  err      %      l     !l   expr
------ --- ------ ------ ------   ----
-47           100     10      1   $_ || 'qqq'
-48           100     10      1   $_ || []
-50    ***     50     11      0   $y || 0
-51    ***     50     11      0   $y || undef
-52    ***     50      0     11   $z || 0
-54    ***     50     11      0   $p ||= $y
-55    ***     50     11      0   $p ||= $z
-56           100     10      1   $x[6] ||= $y
-57    ***     50      0     11   $x[7] ||= $z
-58           100     10      1   $x[8] ||= 1
-59           100     10      1   $x[9] ||= {}
-60           100     10      1   $x[10] ||= \'foo'
-61           100     10      1   $x[11] ||= \$y
-62           100     10      1   $x[12] ||= \*STDIO
-63           100     10      1   $x[13] ||= sub {
-	1;
-}
-
-64           100     10      1   $x[14] ||= *foo{'SCALAR'}
-65    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-66           100     10      1   $x[16] ||= bless({}, 'XXX')
-67           100     10      1   $x[17] ||= "blah\n"
-
-or 3 conditions
-
-line  err      %      l  !l&&r !l&&!r   expr
------ --- ------ ------ ------ ------   ----
-24    ***     33     11      0      0   $y or $x[0]++
-45    ***     33     11      0      0   $y || $z
-46    ***     33      0     11      0   $z || $y
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location        
----------- ----- ----------------
-BEGIN          1 tests/cond_or:10
-BEGIN          1 tests/cond_or:11
-
-Uncovered Subroutines
----------------------
-
-Subroutine Count Location        
----------- ----- ----------------
-__ANON__       0 tests/cond_or:63
-
-
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -21,98 +21,101 @@ tests/cond_or
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10             1                    1   use strict;
+10                                      # __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+11                                      # __COVER__ skip_reason Busted on 5.6 and cygwin
+12                                      
+13             1                    1   use strict;
                1                        
                1                        
-11             1                    1   use warnings;
+14             1                    1   use warnings;
                1                        
                1                        
-12                                      
-13             1                        my @x;
-14                                      
-15             1                        my $y  = 1;
-16             1                        my $z  = 0;
-17             1                        $::foo = 17;
-18                                      
-19    ***      1     50                 if ($] >= 5.009)
-20                                      {
-21             1                            $ENV{PATH} = "/bin";
-22             1                            system "pwd";
-23             1                    1       use lib "tests";
+15                                      
+16             1                        my @x;
+17                                      
+18             1                        my $y  = 1;
+19             1                        my $z  = 0;
+20             1                        $::foo = 17;
+21                                      
+22    ***      1     50                 if ($] >= 5.009)
+23                                      {
+24             1                            $ENV{PATH} = "/bin";
+25             1                            system "pwd";
+26             1                    1       use lib "tests";
                1                        
                1                        
-24             1                            my $file = "cond_or.pl";
-25    ***      1     50                     unless (my $return = do $file)
-26                                          {
-27    ***      0      0                         die "couldn't parse $file: $@" if $@;
-28    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
-29    ***      0      0                         die "couldn't run $file"       unless $return;
-30                                          }
-31                                      }
-32                                      
-33             1                        for (0 .. 10)
-34                                      {
-35    ***     11     50                     $y ||
-36                                              $x[1]++;
-37                                      
-38    ***     11     50     33              $y ||
-39                                              $x[0]++ ||
-40                                              $x[1]++;
-41                                      
-42    ***     11     50                     $x[2]++
-43                                              unless $z;
+27             1                            my $file = "cond_or.pl";
+28    ***      1     50                     unless (my $return = do $file)
+29                                          {
+30    ***      0      0                         die "couldn't parse $file: $@" if $@;
+31    ***      0      0                         die "couldn't do $file: $!"    unless defined $return;
+32    ***      0      0                         die "couldn't run $file"       unless $return;
+33                                          }
+34                                      }
+35                                      
+36             1                        for (0 .. 10)
+37                                      {
+38    ***     11     50                     $y ||
+39                                              $x[1]++;
+40                                      
+41    ***     11     50     33              $y ||
+42                                              $x[0]++ ||
+43                                              $x[1]++;
 44                                      
-45            11                            for (0 .. 2)
-46                                          {
-47            33                                $x[3]++;
-48                                          }
-49                                      
-50    ***     11     50                     if ($z)
-51                                          {
-52    ***      0                                $x[4]++;
-53                                          }
-54                                          else
-55                                          {
-56            11                                $x[5]++;
-57                                          }
-58                                      
-59    ***     11            33              my $p = $y || $z;
-60    ***     11            33              my $q = $z || $y;
-61            11           100              my $r = $_ || "qqq";
-62            11           100              my $s = $_ || [];
-63            11                            my $t = $y | $z;
-64    ***     11            50              my $u = $y || 0;
-65    ***     11            50              my $v = $y || undef;
-66    ***     11            50              my $w = $z || 0;
-67                                      
-68    ***     11            50              $p     ||= $y;
-69    ***     11            50              $p     ||= $z;
-70            11           100              $x[ 6] ||= $y;
-71    ***     11            50              $x[ 7] ||= $z;
-72            11           100              $x[ 8] ||= 1;
-73            11           100              $x[ 9] ||= {};
-74            11           100              $x[10] ||= \"foo";
-75            11           100              $x[11] ||= \$y;
-76            11           100              $x[12] ||= \*STDIO;
-77    ***     11           100      0       $x[13] ||= sub { 1 };
+45    ***     11     50                     $x[2]++
+46                                              unless $z;
+47                                      
+48            11                            for (0 .. 2)
+49                                          {
+50            33                                $x[3]++;
+51                                          }
+52                                      
+53    ***     11     50                     if ($z)
+54                                          {
+55    ***      0                                $x[4]++;
+56                                          }
+57                                          else
+58                                          {
+59            11                                $x[5]++;
+60                                          }
+61                                      
+62    ***     11            33              my $p = $y || $z;
+63    ***     11            33              my $q = $z || $y;
+64            11           100              my $r = $_ || "qqq";
+65            11           100              my $s = $_ || [];
+66            11                            my $t = $y | $z;
+67    ***     11            50              my $u = $y || 0;
+68    ***     11            50              my $v = $y || undef;
+69    ***     11            50              my $w = $z || 0;
+70                                      
+71    ***     11            50              $p     ||= $y;
+72    ***     11            50              $p     ||= $z;
+73            11           100              $x[ 6] ||= $y;
+74    ***     11            50              $x[ 7] ||= $z;
+75            11           100              $x[ 8] ||= 1;
+76            11           100              $x[ 9] ||= {};
+77            11           100              $x[10] ||= \"foo";
+78            11           100              $x[11] ||= \$y;
+79            11           100              $x[12] ||= \*STDIO;
+80    ***     11           100      0       $x[13] ||= sub { 1 };
       ***      0                        
-78            11           100              $x[14] ||= *::foo{SCALAR};
-79    ***     11            50              $x[15] ||= *STDIO{IO};
-80            11           100              $x[16] ||= bless {}, "XXX";
-81            11           100              $x[17] ||= <<"EOD";
-82                                      blah
-83                                      EOD
-84    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
-85                                      }
-86                                      
-87                                      # print join(", ", @x), "\n";
+81            11           100              $x[14] ||= *::foo{SCALAR};
+82    ***     11            50              $x[15] ||= *STDIO{IO};
+83            11           100              $x[16] ||= bless {}, "XXX";
+84            11           100              $x[17] ||= <<"EOD";
+85                                      blah
+86                                      EOD
+87    ***     11     50                     cond_dor(\@x) if exists &cond_dor;
+88                                      }
+89                                      
+90                                      # print join(", ", @x), "\n";
 
 
 Branches
@@ -120,16 +123,16 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-19    ***     50      1      0   if ($] >= 5.009)
-25    ***     50      0      1   unless (my $return = do $file)
-27    ***      0      0      0   if $@
-28    ***      0      0      0   unless defined $return
-29    ***      0      0      0   unless $return
-35    ***     50      0     11   unless $y
-38    ***     50      0     11   unless $y or $x[0]++
-42    ***     50     11      0   unless $z
-50    ***     50      0     11   if ($z) { }
-84    ***     50     11      0   if exists &cond_dor
+22    ***     50      1      0   if ($] >= 5.009)
+28    ***     50      0      1   unless (my $return = do $file)
+30    ***      0      0      0   if $@
+31    ***      0      0      0   unless defined $return
+32    ***      0      0      0   unless $return
+38    ***     50      0     11   unless $y
+41    ***     50      0     11   unless $y or $x[0]++
+45    ***     50     11      0   unless $z
+53    ***     50      0     11   if ($z) { }
+87    ***     50     11      0   if exists &cond_dor
 
 
 Conditions
@@ -139,36 +142,36 @@ or 2 conditions
 
 line  err      %      l     !l   expr
 ----- --- ------ ------ ------   ----
-61           100     10      1   $_ || 'qqq'
-62           100     10      1   $_ || []
-64    ***     50     11      0   $y || 0
-65    ***     50     11      0   $y || undef
-66    ***     50      0     11   $z || 0
-68    ***     50     11      0   $p ||= $y
-69    ***     50     11      0   $p ||= $z
-70           100     10      1   $x[6] ||= $y
-71    ***     50      0     11   $x[7] ||= $z
-72           100     10      1   $x[8] ||= 1
-73           100     10      1   $x[9] ||= {}
-74           100     10      1   $x[10] ||= \'foo'
-75           100     10      1   $x[11] ||= \$y
-76           100     10      1   $x[12] ||= \*STDIO
-77           100     10      1   $x[13] ||= sub {
+64           100     10      1   $_ || 'qqq'
+65           100     10      1   $_ || []
+67    ***     50     11      0   $y || 0
+68    ***     50     11      0   $y || undef
+69    ***     50      0     11   $z || 0
+71    ***     50     11      0   $p ||= $y
+72    ***     50     11      0   $p ||= $z
+73           100     10      1   $x[6] ||= $y
+74    ***     50      0     11   $x[7] ||= $z
+75           100     10      1   $x[8] ||= 1
+76           100     10      1   $x[9] ||= {}
+77           100     10      1   $x[10] ||= \'foo'
+78           100     10      1   $x[11] ||= \$y
+79           100     10      1   $x[12] ||= \*STDIO
+80           100     10      1   $x[13] ||= sub {
 	1;
 }
 
-78           100     10      1   $x[14] ||= *foo{'SCALAR'}
-79    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
-80           100     10      1   $x[16] ||= bless({}, 'XXX')
-81           100     10      1   $x[17] ||= "blah\n"
+81           100     10      1   $x[14] ||= *foo{'SCALAR'}
+82    ***     50      0     11   $x[15] ||= *STDIO{'IO'}
+83           100     10      1   $x[16] ||= bless({}, 'XXX')
+84           100     10      1   $x[17] ||= "blah\n"
 
 or 3 conditions
 
 line  err      %      l  !l&&r !l&&!r   expr
 ----- --- ------ ------ ------ ------   ----
-38    ***     33     11      0      0   $y or $x[0]++
-59    ***     33     11      0      0   $y || $z
-60    ***     33      0     11      0   $z || $y
+41    ***     33     11      0      0   $y or $x[0]++
+62    ***     33     11      0      0   $y || $z
+63    ***     33      0     11      0   $z || $y
 
 
 Covered Subroutines
@@ -176,16 +179,16 @@ Covered Subroutines
 
 Subroutine Count Location        
 ---------- ----- ----------------
-BEGIN          1 tests/cond_or:10
-BEGIN          1 tests/cond_or:11
-BEGIN          1 tests/cond_or:23
+BEGIN          1 tests/cond_or:13
+BEGIN          1 tests/cond_or:14
+BEGIN          1 tests/cond_or:26
 
 Uncovered Subroutines
 ---------------------
 
 Subroutine Count Location        
 ---------- ----- ----------------
-__ANON__       0 tests/cond_or:77
+__ANON__       0 tests/cond_or:80
 
 
 tests/cond_or.pl
@@ -193,7 +196,7 @@ tests/cond_or.pl
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/cond_xor
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/default_param
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/deparse
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl -l
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/deparse
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl -l
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/destroy
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/dynamic_subs
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,60 +20,63 @@ tests/eval1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10                                      use strict;
-11                                      use warnings;
+10                                      # __COVER__ skip_test $] == 5.010
+11                                      # __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
 12                                      
-13                                      use lib -d "t" ? "t" : "..";
-14                                      
-15             1                        my $x;
-16                                      
-17             1                    3   eval <<'EOS';
+13                                      use strict;
+14                                      use warnings;
+15                                      
+16                                      use lib -d "t" ? "t" : "..";
+17                                      
+18             1                        my $x;
+19                                      
+20             1                    3   eval <<'EOS';
                3                        
                3                        
-18                                      sub e
-19                                      {
-20                                          $x++;
-21                                          $x
-22                                      }
-23                                      EOS
-24                                      
-25             1                    2   eval <<'EOS';
+21                                      sub e
+22                                      {
+23                                          $x++;
+24                                          $x
+25                                      }
+26                                      EOS
+27                                      
+28             1                    2   eval <<'EOS';
       ***      2                    0   
                2                    3   
       ***      0                        
                3                        
-26                                      sub f
-27                                      {
-28                                          $x++;
-29                                          $x
-30                                      }
-31                                      
-32                                      sub g
-33                                      {
-34                                          $x++;
-35                                      }
-36                                      
-37                                      sub h
-38                                      {
-39                                          $x++;
-40                                      }
-41                                      EOS
-42                                      
-43             1                        e();
-44             1                        e();
-45             1                        e();
-46             1                        f();
-47             1                        f();
-48             1                        h();
-49             1                        h();
-50             1                        h();
+29                                      sub f
+30                                      {
+31                                          $x++;
+32                                          $x
+33                                      }
+34                                      
+35                                      sub g
+36                                      {
+37                                          $x++;
+38                                      }
+39                                      
+40                                      sub h
+41                                      {
+42                                          $x++;
+43                                      }
+44                                      EOS
+45                                      
+46             1                        e();
+47             1                        e();
+48             1                        e();
+49             1                        f();
+50             1                        f();
+51             1                        h();
+52             1                        h();
+53             1                        h();
 
 
 Covered Subroutines
@@ -81,15 +84,15 @@ Covered Subroutines
 
 Subroutine Count Location      
 ---------- ----- --------------
-e              3 tests/eval1:17
-f              2 tests/eval1:25
-h              3 tests/eval1:25
+e              3 tests/eval1:20
+f              2 tests/eval1:28
+h              3 tests/eval1:28
 
 Uncovered Subroutines
 ---------------------
 
 Subroutine Count Location      
 ---------- ----- --------------
-g              0 tests/eval1:25
+g              0 tests/eval1:28
 
 
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,66 +20,69 @@ tests/eval1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
 7                                       # The latest version of this software should be available from my homepage:
 8                                       # http://www.pjcj.net
 9                                       
-10             1                    1   use strict;
+10                                      # __COVER__ skip_test $] == 5.010
+11                                      # __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
+12                                      
+13             1                    1   use strict;
                1                        
                1                        
-11             1                    1   use warnings;
+14             1                    1   use warnings;
                1                        
                1                        
-12                                      
-13    ***      1     50             1   use lib -d "t" ? "t" : "..";
+15                                      
+16    ***      1     50             1   use lib -d "t" ? "t" : "..";
                1                        
                1                        
-14                                      
-15             1                        my $x;
-16                                      
-17             1                    3   eval <<'EOS';
+17                                      
+18             1                        my $x;
+19                                      
+20             1                    3   eval <<'EOS';
                3                        
                3                        
-18                                      sub e
-19                                      {
-20                                          $x++;
-21                                          $x
-22                                      }
-23                                      EOS
-24                                      
-25             1                    2   eval <<'EOS';
+21                                      sub e
+22                                      {
+23                                          $x++;
+24                                          $x
+25                                      }
+26                                      EOS
+27                                      
+28             1                    2   eval <<'EOS';
       ***      2                    0   
                2                    3   
       ***      0                        
                3                        
-26                                      sub f
-27                                      {
-28                                          $x++;
-29                                          $x
-30                                      }
-31                                      
-32                                      sub g
-33                                      {
-34                                          $x++;
-35                                      }
-36                                      
-37                                      sub h
-38                                      {
-39                                          $x++;
-40                                      }
-41                                      EOS
-42                                      
-43             1                        e();
-44             1                        e();
-45             1                        e();
-46             1                        f();
-47             1                        f();
-48             1                        h();
-49             1                        h();
-50             1                        h();
+29                                      sub f
+30                                      {
+31                                          $x++;
+32                                          $x
+33                                      }
+34                                      
+35                                      sub g
+36                                      {
+37                                          $x++;
+38                                      }
+39                                      
+40                                      sub h
+41                                      {
+42                                          $x++;
+43                                      }
+44                                      EOS
+45                                      
+46             1                        e();
+47             1                        e();
+48             1                        e();
+49             1                        f();
+50             1                        f();
+51             1                        h();
+52             1                        h();
+53             1                        h();
 
 
 Branches
@@ -87,7 +90,7 @@ Branches
 
 line  err      %   true  false   branch
 ----- --- ------ ------ ------   ------
-13    ***     50      1      0   -d 't' ? :
+16    ***     50      1      0   -d 't' ? :
 
 
 Covered Subroutines
@@ -95,18 +98,18 @@ Covered Subroutines
 
 Subroutine Count Location      
 ---------- ----- --------------
-BEGIN          1 tests/eval1:10
-BEGIN          1 tests/eval1:11
 BEGIN          1 tests/eval1:13
-e              3 tests/eval1:17
-f              2 tests/eval1:25
-h              3 tests/eval1:25
+BEGIN          1 tests/eval1:14
+BEGIN          1 tests/eval1:16
+e              3 tests/eval1:20
+f              2 tests/eval1:28
+h              3 tests/eval1:28
 
 Uncovered Subroutines
 ---------------------
 
 Subroutine Count Location      
 ---------- ----- --------------
-g              0 tests/eval1:25
+g              0 tests/eval1:28
 
 
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval3
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/eval3
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval3
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval3
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -38,7 +38,7 @@ tests/eval2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/exec
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -26,7 +26,7 @@ tests/fork
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/if
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/if
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -1,66 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File                                         stmt   bran   cond    sub  total
------------------------------------------- ------ ------ ------ ------ ------
-tests/inc_sub                               100.0   75.0    n/a  100.0   94.7
-Total                                       100.0   75.0    n/a  100.0   94.7
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/inc_sub
-
-line  err   stmt   bran   cond    sub   code
-1                                       #!/bin/perl
-2                                       
-3              1                    1   use lib ();
-               1                        
-               1                        
-4                                       
-5                                       BEGIN
-6                                       {
-7                                           lib->import
-8                                           (
-9                                               sub
-10                                              {
-11             3    100                             return unless $_[1] eq "IncSub.pm";
-12             1                                    my $fh;
-13    ***      1     50                             open $fh, "tests/IncSub.pm" or die $!;
-14             1                                    $fh
-15                                              }
-16                                          )
-17             1                    1   }
-18                                      
-19             1                    1   use IncSub;
-               1                        
-               1                        
-20                                      
-21             1                        IncSub::check
-
-
-Branches
---------
-
-line  err      %   true  false   branch
------ --- ------ ------ ------   ------
-11           100      2      1   unless $_[1] eq 'IncSub.pm'
-13    ***     50      0      1   unless open $fh, 'tests/IncSub.pm'
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location        
----------- ----- ----------------
-BEGIN          1 tests/inc_sub:17
-BEGIN          1 tests/inc_sub:19
-BEGIN          1 tests/inc_sub:3 
-
-
@@ -0,0 +1,66 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File                                         stmt   bran   cond    sub  total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/inc_sub                               100.0   75.0    n/a  100.0   94.7
+Total                                       100.0   75.0    n/a  100.0   94.7
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/inc_sub
+
+line  err   stmt   bran   cond    sub   code
+1                                       #!/bin/perl
+2                                       
+3              1                    1   use lib ();
+               1                        
+               1                        
+4                                       
+5                                       BEGIN
+6                                       {
+7                                           lib->import
+8                                           (
+9                                               sub
+10                                              {
+11             3    100                             return unless $_[1] eq "IncSub.pm";
+12             1                                    my $fh;
+13    ***      1     50                             open $fh, "tests/IncSub.pm" or die $!;
+14             1                                    $fh
+15                                              }
+16                                          )
+17             1                    1   }
+18                                      
+19             1                    1   use IncSub;
+               1                        
+               1                        
+20                                      
+21             1                        IncSub::check
+
+
+Branches
+--------
+
+line  err      %   true  false   branch
+----- --- ------ ------ ------   ------
+11           100      2      1   unless $_[1] eq 'IncSub.pm'
+13    ***     50      0      1   unless open $fh, 'tests/IncSub.pm'
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location        
+---------- ----- ----------------
+BEGIN          1 tests/inc_sub:17
+BEGIN          1 tests/inc_sub:19
+BEGIN          1 tests/inc_sub:3 
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 Devel::Cover: Deleting old coverage for changed file tests/md5
 
 
@@ -27,7 +27,7 @@ tests/md5
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module1.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module1.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module1.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module2.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module2.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module2.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -82,7 +82,7 @@ tests/module2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/module_ignore
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -18,7 +18,7 @@ Finish: ...
 tests/Module_import.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module_import.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -49,7 +49,7 @@ tests/module_import
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module_import.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -49,7 +49,7 @@ tests/module_import
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,5 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Devel::Cover: Can't find digest for ../../Module_import.pm
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module_import.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -49,7 +49,7 @@ tests/module_relative
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -19,7 +19,7 @@ Finish: ...
 tests/Module_import.pm
 
 line  err   stmt   bran   cond    sub   code
-1                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+1                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 2                                       
 3                                       # This software is free.  It is licensed under the same terms as Perl itself.
 4                                       
@@ -49,7 +49,7 @@ tests/module_relative
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overload_bool
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overload_bool
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overloaded
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/overloaded
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 --------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 --------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 --------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 --------------------------------------------------------------- ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/require
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/require
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/skip
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/special_blocks
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,74 +0,0 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
-
-
------------------------------------------- ------ ------ ------ ------ ------
-File                                         stmt   bran   cond    sub  total
------------------------------------------- ------ ------ ------ ------ ------
-tests/special_blocks                        100.0    n/a    n/a  100.0  100.0
-Total                                       100.0    n/a    n/a  100.0  100.0
------------------------------------------- ------ ------ ------ ------ ------
-
-
-Run: ...
-Perl version: ...
-OS: ...
-Start: ...
-Finish: ...
-
-tests/special_blocks
-
-line  err   stmt   bran   cond    sub   code
-1                                       #!/usr/bin/perl
-2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
-4                                       
-5                                       # This software is free.  It is licensed under the same terms as Perl itself.
-6                                       
-7                                       # The latest version of this software should be available from my homepage:
-8                                       # http://www.pjcj.net
-9                                       
-10             1                    1   use strict;
-               1                        
-               1                        
-11             1                    1   use warnings;
-               1                        
-               1                        
-12                                      
-13             1                        my $x;
-14                                      
-15                                      BEGIN
-16                                      {
-17             1                    1       $x++
-18                                      }
-19                                      
-20                                      CHECK
-21                                      {
-22             1                    1       $x++
-23                                      }
-24                                      
-25                                      INIT
-26                                      {
-27             1                    1       $x++
-28                                      }
-29                                      
-30                                      END
-31                                      {
-32             1                    1       $x++
-33                                      }
-34                                      
-35             1                        $x++;
-
-
-Covered Subroutines
--------------------
-
-Subroutine Count Location               
----------- ----- -----------------------
-BEGIN          1 tests/special_blocks:10
-BEGIN          1 tests/special_blocks:11
-BEGIN          1 tests/special_blocks:17
-CHECK          1 tests/special_blocks:22
-END            1 tests/special_blocks:32
-INIT           1 tests/special_blocks:27
-
-
@@ -0,0 +1,74 @@
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File                                         stmt   bran   cond    sub  total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/special_blocks                        100.0    n/a    n/a  100.0  100.0
+Total                                       100.0    n/a    n/a  100.0  100.0
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/special_blocks
+
+line  err   stmt   bran   cond    sub   code
+1                                       #!/usr/bin/perl
+2                                       
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
+4                                       
+5                                       # This software is free.  It is licensed under the same terms as Perl itself.
+6                                       
+7                                       # The latest version of this software should be available from my homepage:
+8                                       # http://www.pjcj.net
+9                                       
+10             1                    1   use strict;
+               1                        
+               1                        
+11             1                    1   use warnings;
+               1                        
+               1                        
+12                                      
+13             1                        my $x;
+14                                      
+15                                      BEGIN
+16                                      {
+17             1                    1       $x++
+18                                      }
+19                                      
+20                                      CHECK
+21                                      {
+22             1                    1       $x++
+23                                      }
+24                                      
+25                                      INIT
+26                                      {
+27             1                    1       $x++
+28                                      }
+29                                      
+30                                      END
+31                                      {
+32             1                    1       $x++
+33                                      }
+34                                      
+35             1                        $x++;
+
+
+Covered Subroutines
+-------------------
+
+Subroutine Count Location               
+---------- ----- -----------------------
+BEGIN          1 tests/special_blocks:10
+BEGIN          1 tests/special_blocks:11
+BEGIN          1 tests/special_blocks:17
+CHECK          1 tests/special_blocks:22
+END            1 tests/special_blocks:32
+INIT           1 tests/special_blocks:27
+
+
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/statement
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/subs_only
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t0
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t1
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/t2
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,4 +1,4 @@
-Reading database from /home/pjcj/g/perl/svk/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -20,7 +20,7 @@ tests/trivial
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -1,5 +1,5 @@
 2 unmatched uncoverable comments not found at end of tests/uncoverable
-Reading database from /home/pjcj/g/perl/dc/cover_db
+Reading database from ...
 
 
 ------------------------------------------ ------ ------ ------ ------ ------
@@ -21,7 +21,7 @@ tests/uncoverable
 line  err   stmt   bran   cond    sub   code
 1                                       #!/usr/bin/perl
 2                                       
-3                                       # Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 4                                       
 5                                       # This software is free.  It is licensed under the same terms as Perl itself.
 6                                       
@@ -0,0 +1,94 @@
+2 unmatched uncoverable comments not found at end of tests/uncoverable
+Reading database from ...
+
+
+------------------------------------------ ------ ------ ------ ------ ------
+File                                         stmt   bran   cond    sub  total
+------------------------------------------ ------ ------ ------ ------ ------
+tests/uncoverable                           100.0  100.0  100.0  100.0  100.0
+Total                                       100.0  100.0  100.0  100.0  100.0
+------------------------------------------ ------ ------ ------ ------ ------
+
+
+Run: ...
+Perl version: ...
+OS: ...
+Start: ...
+Finish: ...
+
+tests/uncoverable
+
+line  err   stmt   bran   cond    sub   code
+1                                       #!/usr/bin/perl
+2                                       
+3                                       # Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
+4                                       
+5                                       # This software is free.  It is licensed under the same terms as Perl itself.
+6                                       
+7                                       # The latest version of this software should be available from my homepage:
+8                                       # http://www.pjcj.net
+9                                       
+10                                      # __COVER__ uncoverable_file tests/.uncoverable
+11                                      
+12             1                        my $x = 1;
+13             1                        my $y = 1;
+14                                      
+15                                      # uncoverable branch true
+16                                      # uncoverable condition left
+17                                      # uncoverable condition false
+18             1   - 50   - 33          if ($x && !$y)
+19                                      {
+20            -0                            $x++;  # uncoverable statement
+21                                          # uncoverable statement
+22            -0                            z();
+23                                      }
+24                                      
+25                                      # uncoverable branch true
+26                                      # uncoverable condition left
+27                                      # uncoverable condition right
+28             1   - 50   - 33          if (!$x || !$y)
+29                                      {
+30                                          # uncoverable statement count:1
+31                                          # uncoverable statement count:2
+32            -0                            b(); b();
+              -0                        
+33                                      }
+34                                      
+35                                      sub z
+36                                      {
+37                                          # uncoverable subroutine
+38            -0                   -0       $y++; # uncoverable statement
+39                                      }
+40                                      
+41                                      # uncoverable statement
+42                                      # uncoverable subroutine
+
+
+Branches
+--------
+
+line  err      %   true  false   branch
+----- --- ------ ------ ------   ------
+18          - 50     -0      1   if ($x and not $y)
+28          - 50     -0      1   unless ($x and $y)
+
+
+Conditions
+----------
+
+and 3 conditions
+
+line  err      %     !l  l&&!r   l&&r   expr
+----- --- ------ ------ ------ ------   ----
+18          - 33     -0      1     -0   $x and not $y
+28          - 33     -0     -0      1   $x and $y
+
+
+Uncovered Subroutines
+---------------------
+
+Subroutine Count Location            
+---------- ----- --------------------
+z             -0 tests/uncoverable:38
+
+
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,4 +1,4 @@
-# Copyright 2005-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2005-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,8 +12,8 @@ use warnings;
 
 use File::Copy;
 
-use Devel::Cover::Inc  0.65;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Inc  0.66;
+use Devel::Cover::Test 0.66;
 
 my $base = $Devel::Cover::Inc::Base;
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,12 +1,15 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
 # The latest version of this software should be available from my homepage:
 # http://www.pjcj.net
 
+# __COVER__ skip_test $] < 5.008 || $^O eq "cygwin"
+# __COVER__ skip_reason Busted on 5.6 and cygwin
+
 use strict;
 use warnings;
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -l
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,12 +1,15 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
 # The latest version of this software should be available from my homepage:
 # http://www.pjcj.net
 
+# __COVER__ skip_test $] == 5.010
+# __COVER__ skip_reason One test fails only under make test on 5.10.0 unhreaded
+
 use strict;
 use warnings;
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@
 use strict;
 use warnings;
 
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
 
 my $run_test = sub
 {
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -10,7 +10,7 @@
 use strict;
 use warnings;
 
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Test 0.66;
 
 my $run_test = sub
 {
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2007-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2007-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -12,8 +12,8 @@ use warnings;
 
 use File::Copy;
 
-use Devel::Cover::Inc  0.65;
-use Devel::Cover::Test 0.65;
+use Devel::Cover::Inc  0.66;
+use Devel::Cover::Test 0.66;
 
 my $base = $Devel::Cover::Inc::Base;
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2003-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2003-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2006-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2006-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2002-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2002-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# Copyright 2004-2009, Paul Johnson (pjcj@cpan.org)
+# Copyright 2004-2010, Paul Johnson (pjcj@cpan.org)
 
 # This software is free.  It is licensed under the same terms as Perl itself.
 
@@ -0,0 +1,102 @@
+# Copyright 1999 - 2000 by Paul Johnson (paul@pjcj.net)
+
+# documentation at __END__
+
+# Original author: Paul Johnson
+# Created:         Fri 12 Mar 1999 10:25:51 am
+
+use strict;
+
+require 5.004;
+
+package System;
+
+use Exporter ();
+use vars qw($VERSION @ISA @EXPORT);
+
+$VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+
+@ISA = ("Exporter");
+@EXPORT = ("sys", "dsys");
+
+my $Command = 0;
+my $Errors  = 0;
+my $Verbose = 0;
+
+sub import
+{
+  my $class = shift;
+  my $args = "@_";
+  $Command = $args =~ /\bcommand\b/i;
+  $Errors  = $args =~ /\berror\b/i;
+  $Verbose = $args =~ /\bverbose\b/i;
+  $Command ||= $Verbose;
+  $Errors  ||= $Verbose;
+  $class->export_to_level(1, "sys" ) if $args =~ /\bsys\b/i;
+  $class->export_to_level(1, "dsys") if $args =~ /\bdsys\b/i;
+}
+
+sub sys
+{
+  my (@command) = @_;
+  local $| = 1;
+  print "@command"; # if $Command;
+  my $rc = 0xffff & system @command;
+  print "\n" if $Command && !$rc && !$Verbose;
+  ret($rc);
+}
+
+sub dsys
+{
+  die "@_ failed" if sys @_;
+}
+
+sub ret
+{
+  my ($rc) = @_;
+  printf "  returned %#04x: ", $rc if $Errors && $rc;
+  if ($rc == 0)
+  {
+    print "ran with normal exit\n" if $Verbose;
+  }
+  elsif ($rc == 0xff00)
+  {
+    print "command failed: $!\n" if $Errors;
+  }
+  elsif ($rc > 0x80)
+  {
+    $rc >>= 8;
+    print "ran with non-zero exit status $rc\n" if $Errors;
+  }
+  else
+  {
+    print "ran with " if $Errors;
+    if ($rc & 0x80)
+    {
+      $rc &= ~0x80;
+      print "coredump from " if $Errors;
+    }
+    print "signal $rc\n" if $Errors;
+  }
+  $rc;
+}
+
+1
+
+__END__
+
+=head1 NAME
+
+System - run a system command and check the result
+
+=head1 SYNOPSIS
+
+use System "command, verbose, errors";
+sys qw(ls -al);
+
+=head1 DESCRIPTION
+
+The sys function runs a system command, checks result, and comments on
+it.
+
+=cut
@@ -0,0 +1,1074 @@
+#!/usr/bin/perl
+
+# Copyright 2001-2010, Paul Johnson (paul@pjcj.net)
+
+# This software is free.  It is licensed under the same terms as Perl itself.
+
+# The latest version of this software should be available from my homepage:
+# http://www.pjcj.net
+
+use strict;
+use warnings;
+
+require 5.010_001;
+
+# use autodie;
+
+use System "sys:dsys: command, error";
+
+my @opt = qw( perl modules
+              zlib gd openssl nagios
+              apache mod_perl fastcgi
+              git subversion postgres
+              coverage all );
+
+my $Usage =
+    "Usage: $0 /src/dir perl_version /installation [" . join("|", @opt) . "]\n";
+
+my $Src_dir      = shift  || die $Usage;
+my $Perl_src     = shift  || die $Usage;
+my $Installation = shift  || die $Usage;
+my $Options      = "@ARGV";
+   $Options      = "dry"  if $Options =~ /\bdry\b/;
+   $Options      = "@opt" if $Options =~ /\ball\b/;
+   pop @opt for 1 .. 4;
+   $Options      = "@opt" unless $Options;
+
+my $Sw;
+my $Perl;
+
+my $UBS = -d "/opt/bin";
+if ($UBS)
+{
+    $ENV{PATH}            = "/usr/bin:/usr/sbin:/bin:/sbin:/usr/ucb:" .
+                            "/usr/ccs/bin:/usr/ccs/lib:/usr/openwin/bin";
+    $ENV{ORACLE_HOME}     = `op chile_db oracle_home`;
+    $ENV{ORACLE_HOME}   ||= "/export/opt/p2orstree/10.1.0.4";
+    $ENV{ORACLE_HOME}     = "/app/ora/p2orstree/10.1.0.4"
+        unless -e $ENV{ORACLE_HOME};
+    $ENV{LD_LIBRARY_PATH} = "$ENV{ORACLE_HOME}/lib32:/usr/ucblib";
+}
+else
+{
+    # $ENV{ORACLE_HOME} = "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server";
+    # die "ORACLE_HOME needs to be set!" unless exists $ENV{ORACLE_HOME};
+    # die "ORACLE_HOME is invalid!"      unless -d     $ENV{ORACLE_HOME};
+    # $ENV{LD_LIBRARY_PATH} = "$ENV{LD_LIBRARY_PATH}:$ENV{ORACLE_HOME}/lib";
+}
+
+my $Top   = `pwd`;
+chomp $Top;
+my $Build = "$Top/build";
+my $Blead = $Perl_src eq "blead";
+my $Maint = $Perl_src eq "maint";
+
+sub get_src
+{
+    my ($package, $dir) = @_;
+    $dir ||= $Src_dir;
+    my $src = $package;
+    $src = "$package.tar.gz"       unless -f $src;
+    $src = "$package.tar.bz2"      unless -f $src;
+    $src = "$dir/$package"         unless -f $src;
+    $src = "$dir/$package.tar.gz"  unless -f $src;
+    $src = "$dir/$package.tar.bz2" unless -f $src;
+    $src = $package                unless -f $src;
+    # die "Can't find $package in $dir ($Src_dir)\n"    unless -f $src;
+    return $src;
+}
+
+sub building ($)
+{
+    my ($option) = @_;
+    return $Options =~ /\b$option\b/i;
+}
+
+sub uncompress
+{
+    $_[0] =~ /2$/ ? "bzcat" : $UBS ? "gzcat" : "zcat"
+}
+
+sub build ($$$)
+{
+    my ($module, $src_dir, $opts) = @_;
+
+    chdir $Build or die "Can't chdir $Build: $!";
+    my $src = get_src($module, $src_dir);
+
+    $opts =
+    {
+        "unpack" => sub { dsys uncompress($src) . " $src | tar xf -" },
+        dir      => sub { $src =~ m|.*/(.*)\.tar\.| && $1 },
+        config   => sub { dsys "$Perl Makefile.PL" },
+        make     => sub { dsys "make" },
+        test     => sub { sys  "make test" }, # some modules fail their tests...
+        install  => sub { dsys "make install" },
+        %$opts
+    };
+
+    print "build $module\n";
+    my $dir = $opts->{dir}->();
+    $opts->{"unpack"}->();
+    chdir $dir or die "Can't chdir $dir: $!";
+    $opts->{config}->();
+    $opts->{make}->();
+    $opts->{test}->();
+    $opts->{install}->();
+    print "built $module\n";
+}
+
+sub feed ($$)
+{
+    my ($command, $input) = @_;
+    open my $c, "| $command" or die "Cannot run $command:$!\n";
+    print $c $input;
+    close $c or die "Cannot run $command:$!\n";
+}
+
+sub main ()
+{
+    dsys "rm -rf $Build";
+    mkdir $Build, 0750 or die "Can't mkdir $Build: $!";
+    $ENV{HOME} = $Sw;
+    my $gmake  = "/app/home/t136103/g/sw/bin/gmake";
+    $gmake     = "make" unless -e $gmake;
+
+    if (building "perl")
+    {
+        chdir $Build or die "Can't chdir $Build: $!";
+        dsys "rm -rf $Sw/*";
+
+        if ($Blead)
+        {
+            my $perl_dir = "/usr/local/pkg/bleadperl";
+            mkdir $perl_dir;
+            chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+            dsys "rsync -avz --delete " .
+                 "rsync://ftp.activestate.com/perl-current/ .";
+        }
+        elsif ($Maint)
+        {
+            my $perl_dir = "$Installation/tmp/maintperl";
+            dsys "mkdir -p $perl_dir";
+            chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+            if (1)
+            {
+                dsys "rsync -avz --delete " .
+                     "rsync://ftp.linux.activestate.com/perl-5.8.x/ .";
+            }
+            else
+            {
+                my $url = "http://git.develooper.com/?p=perl.git;a=snapshot;" .
+                          "h=maint-5.10;sf=tgz";
+                my $src = "maint.tar.gz";
+                dsys "rm -f *gz";
+                dsys "wget '$url'";
+                dsys "mv *gz $src";
+                dsys uncompress($src) . " $src | tar xf -";
+                $perl_dir .= "/perl";
+                chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+            }
+        }
+        else
+        {
+            dsys uncompress($Perl_src) . " $Perl_src | tar xf -";
+            my ($perl_dir) = $Perl_src =~ m!.*/(.*)\.tar\.(gz|bz2)$!;
+            chdir $perl_dir or die "Can't chdir $perl_dir: $!";
+        }
+
+        my @opts =
+        (
+          "-Dperladmin=" .
+              ($UBS ? "'paul-za.johnson\@ubs.com'" : "'paul\@pjcj.net'"),
+          "-Dprefix=$Sw",
+        );
+        push @opts, "-Dusedevel" if $Blead;
+        push @opts,
+        (
+            # -A, not -D
+            "-Dccflags='-fprofile-arcs -ftest-coverage'",
+            "-Dldflags='-fprofile-arcs -ftest-coverage'",
+            "-Doptimize='-g -O0'",
+        ) if building "Xcoverage";
+
+        dsys "sh ./Configure -des @opts";
+        dsys "make" . (building "Xcoverage" ? " perl.gcov" : "");
+        sys  "make test";
+        dsys "make install";
+
+        my ($version) = glob "${Perl}5.*";
+        symlink $version, $Perl;
+
+        $Options =~ s/\bperl\b//;
+    }
+
+    chdir $Top or die "Can't chdir $Top: $!";
+    my $restart = "perl -le 'print q()' '' | " .
+                  "$Perl $0 $Src_dir $Perl_src $Installation $Options";
+    print "<$restart [$^X] [$Perl]>\n";
+    exec $restart if $^X !~ /$Perl/;
+
+    if (building "zlib")
+    {
+        my $zlib = "zlib-1.2.3";
+        build $zlib,
+              $Src_dir,
+              {
+                  config  => sub { dsys "./configure" },
+                  install => sub { dsys "make install prefix=$Sw" },
+              };
+    }
+
+    if (building "gd")
+    {
+        my $jpeg    = "jpegsrc.v6b";
+        my $jpegdir = "jpeg-6b";
+        build $jpeg,
+              $Src_dir,
+              {
+                  dir     => sub { $jpegdir },
+                  config  => sub { dsys "./configure --prefix=$Sw" },
+                  install => sub
+                  {
+                      dsys "make install install-lib install-headers";
+                  },
+              };
+
+        my $png = "libpng-1.2.34";
+        build $png,
+              $Src_dir,
+              {
+                  config  => sub
+                  {
+                      my $ext = $UBS ? "32sunu" : "linux";
+                      dsys "cp scripts/makefile.$ext Makefile";
+                      dsys "perl -pi -e 's|^(prefix=).*|\$1$Sw|' Makefile";
+                      dsys "make" .
+                           " ZLIBLIB=$Sw/lib" .
+                           " ZLIBINC=$Sw/include";
+                  }
+              };
+
+        my $gd = "gd-2.0.35";
+        build $gd,
+              $Src_dir,
+              {
+                  config  => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --with-jpeg=$Sw" .
+                           " --with-png=$Sw";
+                  }
+              };
+    }
+
+    if (building "openssl")
+    {
+        # my $openssl = "openssl-0.9.8g";  # Crypt::SSLeay fails
+        my $openssl = "openssl-0.9.7" . ($UBS ? "g" : "j");  # Solaris fails
+        # my $openssl = "openssl-0.9.8j";
+        build $openssl,
+              $Src_dir,
+              { config => sub { dsys "./config --prefix=$Sw shared" } };
+    }
+
+    $ENV{LD_PRELOAD} = "$Sw/lib/libssl.so" if -e "$Sw/lib/libssl.so" && !$UBS;
+
+    # my $apache   = "apache_1.3.41";
+    my $apache   = "httpd-2.2.11";
+
+    if ($apache =~ /apache/)
+    {
+        my $mod_perl = "mod_perl-1.30";
+
+        build $apache,
+              $Src_dir,
+              {
+                  config  => sub {},
+                  make    => sub {},
+                  test    => sub {},
+                  install => sub {},
+              }
+            if building "apache";
+
+        build $mod_perl,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      dsys "$Perl Makefile.PL" .
+                           " APACHE_SRC=../perl/src" .
+                           " DO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1";
+                  },
+              }
+            if building "mod_perl";
+
+        build $apache,
+              $Src_dir,
+              {
+                  "unpack" => sub {},
+                  config   => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --enable-module=so" .
+                           " --enable-module=rewrite" .
+                           " --activate-module=src/modules/perl/libperl.a";
+                  },
+              }
+            if building "apache";
+    }
+    else
+    {
+        my $mod_perl = "mod_perl-2.0.4";
+
+        build $apache,
+              $Src_dir,
+              {
+                  config   => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --with-z=$Sw" .
+                           " --with-ssl=$Sw" .
+                           " --enable-mods-shared='ssl'" .
+                           " --enable-modules='dav rewrite deflate headers'";
+                  },
+              }
+            if building "apache";
+
+        build $mod_perl,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      dsys "$Perl Makefile.PL MP_APXS=$Sw/bin/apxs";
+                  },
+              }
+            if building "mod_perl";
+    }
+
+    if (building "fastcgi" && -e "$Sw/bin/httpd")
+    {
+        my $fastcgi  = "mod_fastcgi-2.4.6";
+
+        build $fastcgi,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      dsys "cp Makefile.AP2 Makefile";
+                      {
+                          local ($^I, @ARGV) = (".bak", "Makefile");
+                          while (<>)
+                          {
+                              s|/usr/local/apache2|$Sw|;
+                              print;
+                          }
+                      }
+                  },
+                  test    => sub {},
+              }
+      }
+
+    if (building "git")
+    {
+        my $git  = "git-1.6.3.3";
+
+        build $git,
+              $Src_dir,
+              {
+                  config  => sub { dsys "./configure --prefix=$Sw" },
+                  make    => sub { dsys "$gmake all" },
+                  test    => sub { dsys "$gmake test" },
+                  test    => sub { dsys "echo $gmake test" },
+                  install => sub { dsys "$gmake install" },
+              }
+      }
+
+    if (building "subversion")
+    {
+        my $neon = "neon-0.25.5";  # subversion needs this version
+        # build $neon,
+              # $Src_dir,
+              # {
+                  # config => sub
+                  # {
+                      # dsys "./configure" .
+                           # " --prefix=$Sw" .
+                           # ($UBS ? "" : " --enable-shared") .
+                           # " --with-ssl=openssl" .
+                           # " --with-libs=$Sw";
+                  # },
+              # };
+
+        my $swig  = "swig-1.3.29";  # subversion needs a version after 1.3.23
+        build $swig,
+              $Src_dir,
+              {
+                  config  => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --with-perl5=$Perl"
+                  },
+                  make    => sub { dsys "$gmake" },
+                  test    => sub {},
+                  install => sub { dsys "$gmake install" },
+              };
+
+        die "Can't find swig" unless `which swig`;
+
+        my $subversion = "subversion-1.4.5";
+        build $subversion,
+              $Src_dir,
+              {
+                  config  => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --without-berkeley-db" .
+                           ($UBS ? " --without-ssl --without-zlib"
+                                 : " --with-ssl    --with-zlib") .
+                           " --enable-shared" .
+                           " --with-apxs=$Sw/bin/apxs" .
+                           " --with-libs=$Sw" .
+                           " PERL=$Perl";
+                  },
+                  make    => sub
+                  {
+                      dsys "make";
+                      dsys "make swig-pl";
+                  },
+                  test    => sub
+                  {
+                      dsys "make check-swig-pl";
+                  },
+                  install => sub
+                  {
+                      dsys "make install";
+                      dsys "make install-swig-pl";
+                  },
+              };
+    }
+
+    if (building "nagios")
+    {
+        my $nagios = "nagios-3.0.6";
+        build $nagios,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      my $user  = getpwuid($<);
+                      my $group = getgrgid($();
+                      {
+                          local ($^I, @ARGV) = (".bak", "cgi/status.c");
+                          while (<>)
+                          {
+                              s/(int max_grid_width=)8;/${1}135;/;
+                              s/(current_item)\+\+;/${1}+=strlen\(temp_servicestatus->description\)+1;/;
+                              print;
+                          }
+                      }
+                      sys "chdir common && ln -s ../base/snprintf.o .";
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --with-htmurl=/chile_monitor" .
+                           " --with-cgiurl=/chile_monitor/cgi-bin" .
+                           " --with-nagios-user=$user" .
+                           " --with-nagios-group=$group" .
+                           " --with-gd-inc=$Sw/include" .
+                           " --with-gd-lib=$Sw/lib";
+                  },
+                  make   => sub
+                  {
+                      sys "make all install";
+                  },
+              };
+
+        my $plugins = "nagios-plugins-1.4.13";
+        build $plugins,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      dsys "CFLAGS=-lm ./configure" .
+                           " --prefix=$Sw" .
+                           " --with-cgiurl=/chile_monitor/cgi-bin"
+                  },
+                  test   => sub {},
+              };
+    }
+
+    if (building "postgres")
+    {
+        my $postgres = "postgresql-8.4.0";
+        build $postgres,
+              $Src_dir,
+              {
+                  config => sub
+                  {
+                      dsys "./configure" .
+                           " --prefix=$Sw" .
+                           " --with-pgport=5433" .
+                           " --without-readline" .
+                           " --with-perl";
+                  },
+                  make    => sub { dsys "$gmake"               },
+                  test    => sub { dsys "$gmake check"         },
+                  install => sub { dsys "$gmake install-strip" },
+              };
+    }
+
+
+    if (building "modules")
+    {
+        my @modules =
+        qw(
+            Bundle::CPAN
+            Bundle::LWP
+            CPAN::Mini
+
+            LWP
+            ExtUtils::ParseXS
+            Module::Build
+            Test::Pod
+            Test::Pod::Coverage
+            Archive::Tar
+            Data::Page
+            Date::Calc
+            Apache::Compress
+            Apache::Filter
+            Apache::Session
+            Apache::Test
+            Data::UUID
+            DateTime
+            Class::Trigger
+            DBIx::ContextualFetch
+            DBIx::Class
+            DBIx::Class::InflateColumn::DateTime
+            DBIx::ProcedureCall
+            Image::Size
+            Template
+            Number::Format
+            Template::Plugin::Number::Format
+            HTML::Lint
+            JSON
+            Test::JSON
+            HTTP::Response::Encoding
+            WWW::Mechanize
+            Test::WWW::Mechanize
+            PPI::HTML
+            Perl::Tidy
+            Devel::Cover
+            Shell::Source
+            B::Utils
+            Log::Log4perl
+            DBIx::Log4perl
+            Net::Server
+            XXNet::IRC
+            File::Find::Rule
+            Proc::ProcessTable
+            Text::Template
+            Data::Dump::Streamer
+            Spreadsheet::ParseExcel
+            Email::Send
+            Text::Table
+            Text::TabularDisplay
+            C::Scan
+            Cache::FastMmap
+
+            XXCGI::Simple::Cookie
+            XXData::Dump
+            XXModule::Pluggable
+
+            DBD:Pg
+            DBIx::Class::Schema::Loader::DBI::Pg
+
+            MooseX::Declare
+
+            Catalyst
+            Catalyst::Controller::FormBuilder
+            Catalyst::Devel
+            Catalyst::Engine::Apache
+            Catalyst::Engine::HTTP::POE
+            Catalyst::Model::DBIC::Schema
+            Catalyst::Plugin::Authentication
+            Catalyst::Plugin::Authentication::Store::DBIx::Class
+            Catalyst::Plugin::Authorization::Roles
+            Catalyst::Plugin::ConfigLoader
+            Catalyst::Plugin::JSONRPC
+            Catalyst::Plugin::Server::XMLRPC
+            Catalyst::Plugin::Session::State::Cookie
+            Catalyst::Plugin::Session::Store::FastMmap
+            Catalyst::Plugin::StackTrace
+            Catalyst::Plugin::Static::Simple
+            Catalyst::Plugin::XMLRPC
+            Catalyst::View::JSON
+            Catalyst::View::TT
+
+            FCGI
+            FCGI::ProcManager
+            SOAP::Lite
+            Sort::Versions
+            Alien::SeleniumRC
+            Test::WWW::Selenium
+            Test::WWW::Mechanize::Catalyst
+            HTML::TagCloud
+
+            Test::Exception
+            Test::Warn
+
+            Date::Parse
+
+            Net::SSLeay
+        ); my @no = qw(
+
+            DBIx::Class::Schema::Loader::DBI::Oracle
+
+            XXBundle::Test  XX_seems_to_want_to_reinstall_perl_itself
+            Plagger
+            XXBundle::BioPerl
+            XXBio::Perl
+            S/SE/SENDU/bioperl-1.5.2_102.tar.gz
+            Tk
+            Regexp::Common
+            XXBundle::POE::All
+            XXBundle::Email
+            XXBundle::Phalanx
+            XXBundle::HTML::Mason
+            XXBundle::Slash
+            XXBundle::RT
+            XXBundle::Bricolage
+            XXBundle::BricolagePlus
+
+            XXPhalanx
+            Test::Harness
+            Test::Reporter
+            Test::Builder
+            Test::Builder::Tester
+            Sub::Uplevel
+            Test::Exception
+            Test::Tester
+            Test::NoWarnings
+            Test::Tester
+            Pod::Escapes
+            Pod::Simple
+            Test::Pod
+            YAML
+            Cwd
+            Archive::Tar
+            Module::Build
+            Devel::Symdump
+            Pod::Coverage
+            Test::Pod::Coverage
+            Compress::Zlib
+            IO::Zlib
+            Archive::Zip
+            Archive::Tar
+            Storable
+            Digest::MD5
+            URI
+            HTML::Tagset
+            HTML::Parser
+            LWP
+            IPC::Run
+            CPANPLUS
+            DBI
+            XXDBD::mysql
+            GD
+            MIME::Base64
+            XXNet::SSLeay
+            Net::LDAP
+            XML::Parser
+            Apache::ASP
+            CGI
+            Date::Manip
+            DBD::Oracle
+            XXDBD::Pg
+            Digest::SHA1
+            Digest::HMAC
+            HTML::Tagset
+            HTML::Template
+            Net::Cmd
+            Mail::Mailer
+            MIME::Body
+            Net::DNS
+            Time::HiRes
+            Apache::DBI
+            Apache::Session
+            Apache::Test
+            AppConfig
+            App::Info
+            XXAuthen::PAM
+            Authen::SASL
+            XXBerkeleyDB
+            Bit::Vector
+            Carp::Clan
+            Chart::Bars
+            Class::DBI
+            Compress::Zlib::Perl
+            Config::IniFiles
+            Convert::ASN1
+            Convert::TNEF
+            Convert::UUlib
+            CPAN
+            Crypt::CBC
+            Crypt::DES
+            Crypt::SSLeay
+            Data::Dumper
+            Date::Calc
+            DateTime
+            XXDBD::DB2
+            XXDBD::ODBC
+            XXDBD::SQLite
+            XXDBD::Sybase
+            Device::SerialPort
+            Digest::SHA
+            Encode
+            Event
+            Excel::Template
+            Expect
+            ExtUtils::MakeMaker
+            File::Scan
+            File::Spec
+            File::Tail
+            File::Temp
+            GD::Graph
+            GD::Text
+            Getopt::Long
+            XXHTML::Mason  XX_wants_to_install:mod_perl_1
+            Image::Size
+            IMAP::Admin
+            Parse::RecDescent
+            Inline
+            IO
+            Spiffy
+            IO::All
+            IO::Socket::SSL
+            IO::String
+            IO::Stringy
+            XML::SAX2Perl
+            Mail::Audit
+            XXMail::ClamAV
+            Mail::Sendmail
+            Math::Pari
+            MD5
+            MIME::Lite
+            MP3::Info
+            Net::Daemon
+            Net::FTP::Common
+            Net::Ping
+            Net::Server
+            Net::SNMP
+
+            XX_install_these_four_modules_in_order_before_Net::SSH::Perl
+            XX_Net::SSH::Perl_requires_Crypt_DH
+            XX_which_is_S_L_O_W_without_Math::BigInt::GMP
+            Math::BigInt
+            Math::BigRat
+            bignum
+            Math::BigInt::GMP
+            XXNet::SSH::Perl
+            XX_bah_the_whole_thing_is_broken___
+
+            Net::Telnet
+            OLE::Storage_Lite
+            Params::Validate
+            XXImage::Magick
+            RPC::PlServer
+            Pod::Parser
+            POE
+            XXSNMP
+            SOAP::Lite
+            Spreadsheet::ParseExcel
+            Spreadsheet::WriteExcel
+            Spreadsheet::WriteExcelXML
+            Storable
+            Template
+            Term::ReadKey
+            Term::ReadLine::Perl
+            Text::Iconv
+            Date::Parse
+            Time::Timezone
+            Unicode::String
+            Unix::Syslog
+            XXVerilog::Parser
+            WWW::Mechanize
+            XML::DOM
+            XML::Generator
+            XML::LibXML
+            XML::NamespaceSupport
+            XML::SAX
+            XML::Simple
+            XML::Writer
+        );
+        # push @modules, "Apache::Request" if $apache !~ /apache/;
+        push @modules, "Crypt::SSLeay" if -e "$Sw/bin/openssl";
+        push @modules, "DBD::Oracle",
+                       "DBIx::Class::Schema::Loader::DBI::Oracle",
+            if exists $ENV{ORACLE_HOME} && -d $ENV{ORACLE_HOME};
+        # push @modules, "MQSeries"    if $UBS;
+        push @modules, "H/HB/HBIERSMA/MQSeries-1.28-b.tar.gz" if $UBS;
+        push @modules, "SVN::Simple::Edit", "SVN::Mirror", "FreezeThaw", "SVK",
+                       "Exception::Class", "SVN::Web"
+            if -e "$Sw/bin/svn";
+
+        for (qw( XX/mnt/wesley/pjcj/g/perl/svk/dc
+                 XX/home/pjcj/g/perl/dc
+                 XX/bcy/pidjjq/dc
+                 /home/pjcj/g/work/Devel-Cover
+            ))
+        {
+            push @modules, $_ if -e;
+        }
+
+        my $config =
+        {
+
+            LWP                    => { test => sub {} },
+            "Apache::Compress"     => { test => sub {} },
+            "Apache::Filter"       => { test => sub {} },
+            "Apache::Request"      => { test => sub {} },
+            "Apache::TEST"         => { test => sub {} },
+            "Data::Dump::Streamer" =>
+                { config => sub { dsys "$Perl Makefile.PL DDS" } },
+            "Crypt::SSLeay"        =>
+            {
+                config => sub
+                {
+                    # dsys qq($Perl -pi -e 's|(my \\\@POSSIBLE_SSL_DIRS = ).*|).
+                         # qq(\$1"$Sw";|' Makefile.PL);
+                    dsys "$Perl Makefile.PL --lib=$Sw/include"
+                }
+            },
+            "SVN::Web"             =>
+                { config => sub { dsys "yes n | $Perl Makefile.PL" } },
+            $UBS ?
+            (
+            "DBD::Oracle"          =>
+                { config => sub { dsys "$Perl Makefile.PL -m $ENV{ORACLE_HOME}".
+                                       "/rdbms/lib/ins_rdbms.mk" } },
+            ) : ()
+        };
+
+        my $cpandir = "http://cpan.wanadoo.nl/";
+        for my $d (qw(
+                       /app/home/t136103/g/build/src/cpan
+                       /home/pidjjq/g/src/cpan
+                       /usr/local/pkg/cpan
+                       /home/pjcj/g/download/cpan ))
+        {
+            $cpandir = "file://$d/" if -d $d;
+        }
+        my $tar = $UBS ? "/app/home/t136103/g/sw/bin/gnutar" : "/bin/tar";
+        my $f = "$Sw/.cpan";
+        -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
+        $f .= "/CPAN";
+        -d $f or mkdir $f, 0750 or die "Can't mkdir $f: $!";
+        $f .= "/MyConfig.pm";
+        open my $fh, ">", $f         or die "Can't open $f: $!";
+        print $fh <<EOF;
+\$CPAN::Config = {
+  'build_cache' => q[100000],
+  'build_dir' => q[$Sw/.cpan/build],
+  'cache_metadata' => q[1],
+  'cpan_home' => q[$Sw/.cpan],
+  'dontload_hash' => {  },
+  'ftp' => q[/usr/bin/ftp],
+  'ftp_proxy' => q[],
+  'getcwd' => q[cwd],
+  'gpg' => q[/usr/bin/gpg],
+  'gzip' => q[/bin/gzip],
+  'histfile' => q[$Sw/.cpan/histfile],
+  'histsize' => q[100],
+  'http_proxy' => q[],
+  'inactivity_timeout' => q[0],
+  'index_expire' => q[1],
+  'inhibit_startup_message' => q[0],
+  'keep_source_where' => q[$Sw/.cpan_sources],
+  'lynx' => q[/usr/bin/lynx],
+  'make' => q[/usr/bin/make],
+  'make_arg' => q[],
+  'make_install_arg' => q[],
+  'makepl_arg' => q[],
+  'ncftp' => q[],
+  'ncftpget' => q[],
+  'no_proxy' => q[],
+  'pager' => q[less],
+  'prerequisites_policy' => q[follow],
+  'scan_cache' => q[atstart],
+  'shell' => q[/bin/zsh],
+  'tar' => q[$tar],
+  'term_is_latin' => q[1],
+  'unzip' => q[/usr/bin/unzip],
+  'urllist' => [q[$cpandir]],
+  'wget' => q[/usr/bin/wget],
+  'auto_commit' => q[1],
+  'mbuildpl_arg' => q[],
+  'mbuild_arg' => q[],
+  'mbuild_install_build_command' => q[./Build],
+  'mbuild_install_arg' => q[],
+};
+print STDERR "Reading MyConfig!\\n";
+1;
+EOF
+        close $fh or die "Can't close $f: $!";
+
+        $ENV{APXS} = "$Sw/bin/apxs";
+
+        eval "use CPAN";
+
+        # dsys "echo upgrade | $Sw/bin/cpan";
+        CPAN::Shell->upgrade("/./");
+        # my $inst = sub { dsys "$Sw/bin/cpan install @_" };
+        my $inst = sub { CPAN::Shell->install(@_) or
+                         CPAN::Shell->force("install", @_) };
+
+        for my $m (@modules)
+        {
+            if ($m =~ /^\//)
+            {
+                print "Installing $m\n";
+                my $c =
+                {
+                    %{$config->{$m} || {}},
+                    unpack => sub {},
+                    dir    => sub { $m },
+                    test   => sub {},
+                };
+                build $m, $m, $c;
+                print "installed $m via Makefle.PL\n";
+            }
+            else
+            {
+                next if $m =~ /^XX/;  # don't want these right now
+                print "Installing $m\n";
+                # for my $mod (CPAN::Shell->expand("Module", "/./")) { print $mod->id, "\n" }
+                if (my $mod = CPAN::Shell->expandany($m))
+                {
+                    # my $mod = CPAN::Shell->expand("Module", "/$m/") or die "Can't expand [$m]";
+                    print $mod->as_string;
+                    next if $mod->uptodate;
+                    # printf "Module %s is installed as %s and will be updated to %s from CPAN\n",
+                           # $mod->id, $mod->inst_version || "-", $mod->cpan_version;
+
+                    if ($config->{$m})
+                    {
+                        print "Installing $m version ", $mod->cpan_version, "\n";
+                        my $b = $mod->cpan_file;
+                        $b =~ s|.*/||;
+                        $b =~ s|\.tar.gz||;
+                        $b = "$Sw/.cpan/build/$b";
+                        sys "rm -rf $b-*";
+                        $mod->get;
+                        ($b) = glob "$b-*" unless -d $b;
+                        die "Can't find build dir $b" unless -d $b;
+                        print "Building in $b\n";
+                        my $c =
+                        {
+                            %{$config->{$m}},
+                            unpack  => sub {},
+                            dir     => sub { $b },
+                            $Blead ?
+                            (
+                                make    => sub { sys "make" },
+                                install => sub { sys "make install" },
+                            ) : ()
+                        };
+                        build $m, $b, $c;
+                    }
+                    else
+                    {
+                        $inst->($m);
+                    }
+                }
+                else
+                {
+                    warn "Can't expand [$m]";
+                    $inst->($m);
+                }
+                print "installed $m via CPAN\n";
+            }
+        }
+    }
+
+    if (building "coverage")
+    {
+        my $c;
+        $c .= "/usr/local/pkg/base/sw/bin/perl $Sw/bin/" if $Blead;
+        $c .= "cpancover -directory $Sw/.cpan/build -outputdir $Sw/cpancover ";
+        $c .= "-outputfile index.html -report ";
+        $c .= $Blead ? "html" : "html_basic";
+        # $c .= " -force";
+        $c .= " -redo_html";
+        dsys $c;
+    }
+
+    if (building "postgres" || building "dry")
+    {
+        my $pg   = "$Installation/pgsql";
+        my $data = "$pg/data";
+        my $log  = "$pg/postgres.log";
+        my $user  = getpwuid($<);
+        print <<"EOT";
+
+Now run the following commands as root:
+
+rm -rf $pg
+mkdir -p $data
+chown -R postgres.postgres $pg
+su - postgres
+$Sw/bin/initdb -D $data
+$Sw/bin/pg_ctl start -l $log -D $data
+sleep 10
+$Sw/bin/createuser -P -e -s factr
+$Sw/bin/createdb -e -O factr factr
+
+# $Sw/bin/psql factr
+
+and stop the db with:
+
+$Sw/bin/pg_ctl stop -l $log -D $data
+
+EOT
+    }
+}
+
+$Perl_src = get_src($Perl_src, $Src_dir);
+
+$Sw                     = "$Installation/sw";
+$Perl                   = "$Sw/bin/perl";
+$ENV{PATH}              = "$Sw/bin:$ENV{PATH}";
+$ENV{LD_LIBRARY_PATH}   = "$Sw/lib:$ENV{LD_LIBRARY_PATH}";
+$ENV{AUTOMATED_TESTING} = 1;
+
+print "sw directory    is $Sw\n";
+print "perl            is $Perl\n";
+print "PATH            is $ENV{PATH}\n";
+print "LD_LIBRARY_PATH is $ENV{LD_LIBRARY_PATH}\n";
+
+# $Perl = <${Perl}5*> unless -e $Perl;
+# die "Can't find perl under $Sw" unless -e $Perl;
+
+main
+
+__END__
+
+# cd /opt/bcy
+# chown -R t136103:ubsadmin sw
+$ cd $root/install
+$ perl ./buildperl ~/g/src perl-5.10.0 /opt/bcy
+# rm -rf sw/.cpan* sw/.subversion sw/bin/perl5.10.0
+# chown -R ubcy1001:gbcy1001 sw
+# chmod -R 755 sw
+$ cd /app/sw/wss/current
+$ mv base/sw sw.old
+$ cp -a /opt/bcy/sw base
+
+
+
+$ perl ./buildperl ~/g/perl/src blead /usr/local/pkg/factr perl modules apache mod_perl zlib openssl subversion
+$ perl ./buildperl ~/g/perl/src perl-5.8.8 /usr/local/pkg/factr-5.8.8 perl modules apache zlib openssl subversion